qt的表格里放控件

1、背景

就是表格里放控件,或者說是動態(tài)生成控件,就像Excel一樣,這樣操作方便,這也是界面強(qiáng)大的體現(xiàn),以前的界面都是一些文本框之類的,顯然操作比較簡單,如果復(fù)雜邏輯的話,處理就比較麻煩了

2、實(shí)例

2.1、界面情況:

image.png

2.2、頭文件的情況

#ifndef DYNAMICCTRLDIALOG_H
#define DYNAMICCTRLDIALOG_H

#include <QDialog>
#include <QTableWidget>

namespace Ui {
class DynamicCTRLDialog;
}

class DynamicCTRLDialog : public QDialog
{
    Q_OBJECT

public:
    explicit DynamicCTRLDialog(QWidget *parent = 0);
    ~DynamicCTRLDialog();
    void init();
private slots:
    void changTextListPath(QString str);
private:
    Ui::DynamicCTRLDialog *ui;
    QTableWidget *m_tableWidget;
};

#endif // DYNAMICCTRLDIALOG_H

2.2、在父窗口上生成控件

    m_tableWidget = ui->tableWidget;
    m_tableWidget->setRowCount(1);

    QTableWidgetItem *item = new QTableWidgetItem();
    m_tableWidget->setItem(0, 0, item);
    item->setText(QString::fromStdString("小明"));
    item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);

    item = new QTableWidgetItem();
    m_tableWidget->setItem(0, 1, item);
    //1/new一個控件,并且指定其父窗口
    QComboBox *combobox_Args=new QComboBox(m_tableWidget);
    QStringList combobox_subArgs_list;
    combobox_subArgs_list.append("1班");
    combobox_subArgs_list.append("2班");
    combobox_Args->addItems(combobox_subArgs_list);
    combobox_Args->setCurrentIndex(1);

2.2 、指定表格的位置

 //2/指定位置
    m_tableWidget->setCellWidget(0,1,combobox_Args);

2.3、指定控件的事件

connect(combobox_Args,SIGNAL(currentIndexChanged(QString)),this,SLOT(changTextListPath(QString)));

void DynamicCTRLDialog::changTextListPath(QString str)
{
    qDebug()<<str;
}

2.4、效果情況

image.png

3、總結(jié)

綜合來說實(shí)現(xiàn)挺簡單的,關(guān)鍵一步就是在父窗口上生成控件,在父窗口生成控件,體現(xiàn)到界面上,就是,控件成為了父窗口的一部分,然后,再放到指定位置就可以了。
創(chuàng)建控件時,可以指定??吭谀硞€父窗口上面,這時控件將作為子窗口被束縛在其父窗口的內(nèi)部,
并伴隨父窗口一起移動,隱藏,顯示和關(guān)閉;否則,該控件將作為獨(dú)立窗口顯示在屏幕上,且游離于其它窗口之外

image.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容