У меня стоит Qt Creator 4.12.2 .
Я создал класс QMyTableWidget, который является потомком класса QTableWIdget.
файл qmytablewidget.h :
#ifndef QMYTABLEWIDGET_H
#define QMYTABLEWIDGET_H
#include <QTableWidget>
class QMyTableWidget : public class QTableWidget
{
public:
QMyTableWIdget(QWidget *parent=nullptr);
QMyTableWidget(int rows, in columns, QWidget *parent=nullptr);
// прочие данные и методы класса QMyTableWidget;
};
файл qmytablewidget.cpp :
QMyTableWidget::QMyTableWidget(QWidget *parent)
{
QTableWidget(); // почему-то компилятор ругается на QTableWIdget(parent);
// инициализация прочих полей класса QMyTableWidget;
}
QMyTableWidget::QMyTableWidget(int rows, int columns, QWidget *parent)
{
QTableWidget(rows, columns, parent);
// инициализация прочих полей класса QMyTableWidget;
}
// реализация прочих методов класса QMyTableWidget;
И есть компонент таблицы tableWidget_8 , который относится к типу QTableWidget. Как сделать так, чтобы этот компонент таблицы относился бы к классу QMyTableWidget, а не к QTableWidget ?
1613 г. = 2024 г.
Здравствуйте, RussianFellow, Вы писали:
RF>И есть компонент таблицы tableWidget_8 , который относится к типу QTableWidget. Как сделать так, чтобы этот компонент таблицы относился бы к классу QMyTableWidget, а не к QTableWidget ?
https://doc.qt.io/qt-6/designer-using-custom-widgets.html
RF>файл qmytablewidget.cpp :
RF>QMyTableWidget::QMyTableWidget(QWidget *parent)
RF>{
RF> QTableWidget(); // почему-то компилятор ругается на QTableWIdget(parent);
RF> // инициализация прочих полей класса QMyTableWidget;
RF>}
QMyTableWidget::QMyTableWidget(QWidget *parent) : QTableWidget( parent )
{
// инициализация прочих полей класса QMyTableWidget;
}
потому что QTableWidget(); -- это НЕ вызов предка.
это создание временного локального объекта без имени, который убивается после ;
иногда это полезно: например, освободить память std::vector, т.к. .clear() режет size() сохраняя .capacity():
std::vector<int>().swap( myVector );