4、
有new的子窗体,加最后一句貌似结束进程快了一些,以前一直不结束
mleft = new EmtWidget(splitterMain);
mleft->init();
mleft->setAttribute(Qt::WA_DeleteOnClose);
https://blog.csdn.net/qq_42419483/article/details/114636359
3、
qt widget里要加 Q_OBJECT,否则事件会没响应
#ifndef EMTWIDGET_H #define EMTWIDGET_H #include <QWidget> #include <QLabel> #include <QVBoxLayout> #include <QToolBar> #include <QAction> #include <QMessageBox> class EmtWidget : public QWidget { Q_OBJECT QLabel* label; QVBoxLayout *vboxLayout1; QToolBar* compsBoxToolBar; public: explicit EmtWidget(QWidget* parent = 0, Qt::WindowFlags f = 0):QWidget(parent,f){ //QWidget(parent); }; QAction* playAct; void init(); ~EmtWidget(); private slots: void startPlay(); };
1、 报错
1>------ 已启动生成: 项目: tableTest, 配置: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2019: 无法解析的外部符号 "int __cdecl qInitResources_application(void)" (?qInitResources_application@@YAHXZ),该符号在函数 _main 中被引用
1>D:\hn新返修\qtcodestest\tableTest\Win32\Debug\\tableTest.exe : fatal error LNK1120: 1 个无法解析的外部命令
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
Q_INIT_RESOURCE(application);
改成
Q_INIT_RESOURCE(tabletest);
即可,与 .qrc文件名一致,这是一个预编译函数
2、qt状态栏布局
状态栏一直居于下方,这个特性可以用来处理一直在下方的布局
statusBar()->addPermanentWidget(ptableWidget,1);
第二个参数如果是1则Widget根据状态栏缩放而变化
void MainWindow::createStatusBar() { //Window * my = new Window(); //my->show(); QTableWidget* ptableWidget = new QTableWidget(3,4,this); ptableWidget->setHorizontalHeaderLabels(QStringList() << "S/N" << "IP" << "MAC"<< "Model"); //设置表格数据区内的所有单元格都不允许编辑 ptableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置表格中每一行的内容 ptableWidget->setItem(0,0,new QTableWidgetItem("N/A")); ptableWidget->setItem(0,1,new QTableWidgetItem("192.168.2.2")); ptableWidget->setItem(0,2,new QTableWidgetItem("11")); ptableWidget->setFixedHeight(130); QHBoxLayout *statusLayout = new QHBoxLayout(); statusLayout->addWidget(ptableWidget); QGroupBox* operGroupBox = new QGroupBox(QString::fromLocal8Bit("")); QVBoxLayout *operLayout = new QVBoxLayout(); QPushButton* buttonStartSearch = new QPushButton(QString::fromLocal8Bit("开始搜索")); QPushButton* buttonStartConnect = new QPushButton(QString::fromLocal8Bit("开始连接")); operLayout->addWidget(buttonStartSearch); operLayout->addWidget(buttonStartConnect); operGroupBox->setLayout(operLayout); QTextBrowser* logTxt = new QTextBrowser; logTxt->setStyleSheet("padding:0 0;margin:0 0"); statusLayout->addWidget(logTxt); logTxt->append(QString::fromLocal8Bit("开始运行:")); logTxt->setFixedHeight(130); statusBar()->addPermanentWidget(ptableWidget,1); statusBar()->addPermanentWidget(operGroupBox,0); statusBar()->addPermanentWidget(logTxt,1); }