qt 开发

 

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);
}

 

posted @ 2022-09-29 15:08  cnchengv  阅读(144)  评论(0编辑  收藏  举报