LINUX.ORG.RU

[QT] subclassing


0

0

Здравствуйте! ДОпустим я в QT Disigner создал виджет QTableWidget. Как бы мне сделать сабклассинг этого виджета. Те я создал дополнительно класс. «CTablePay.h»

#include <QTableWidget>
class QLabel;
class QPushButton;
class QLineEdit;
class TablePay :public QTableWidget{
Q_OBJECT
        public:
        TablePay(QWidget* parent = 0);
        //signals:
        //void HellofromTablePay(const QString&);
        private slots:
        void getHello(const QString&);
        private:
        QString t_str;
};
#endif // CTABLEPAYS_H
CTablePay.cpp
#include <QtGui>
#include "CTablePays.h"

TablePay::TablePay(QWidget* parent)
        :QTableWidget(parent)
{

    t_str="hello,world";
}


void TablePay::getHello(const QString& s)
{
    t_str=s;
}

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>
#include "CTablePays.h"
namespace Ui
{
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QTableWidget* buf_p;
    //TablePay* real_p;
};

#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "CTablePays.h"
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow),buf_p(new TablePay(ui->buf_pay))//,real_p(&TablePay(ui->real_pay))
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}
На главном окне некий виджет QTablePay. Хотелось бы как то сделать так чтобы за место QTableWidget Создавался объект моего класса, который является наследником QTableWidget. Помогите пожалуйста разобраться.


Re: [QT] subclassing

Напиши плагин для designer'а

mannaz ()

Re: [QT] subclassing

создаёте элемент QTableWidget, ПКМ, «Promote to…». указываете «Promoted class name» = «TablePay», «Header file» = «CTablePays.h».

arsi ★★★★★ ()
Ответ на: Re: [QT] subclassing от arsi

Re: [QT] subclassing

А если я сделаю так? хсщвуъ

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QTableWidget* buf_p;
    //TablePay* real_p;
};

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "CTablePays.h"
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow),buf_p(new TablePay(ui->buf_pay))//,real_p(&TablePay(ui->real_pay))
{
    ui->setupUi(this);
}
Это сработает? Те принициализировать указатель на базовый класс QTableWidget указателем на класс TablePay.

jeep ()
Ответ на: Re: [QT] subclassing от jeep

Re: [QT] subclassing

> Это сработает?

О_О

технически — сработает… наверное. в смысле, скорее всего скомпилируется =) но в результате вы получите свою таблицу внутри таблицы ui->buf_pay.

arsi ★★★★★ ()
Ответ на: Re: [QT] subclassing от arsi

Re: [QT] subclassing

Тык сработало. И даже выглядело нормально, но наверно все таки не то - таблица в таблице мне не нужна. Спасибо за Promote to... и скрины. Огромное спасибо - это сработало и то что нужно.

jeep ()
Ответ на: Re: [QT] subclassing от jeep

Re: [QT] subclassing

может нужно использовать не просто дизайнер а кутикреатор?

teferiincub ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.