• 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);
    }
  • 相关阅读:
    5、依赖倒转原则
    4、开放-封闭原则
    3、单一职责原则
    2013年工作生活总结
    2、策略模式
    1、简单工厂模式
    Unity3D笔记四 基础知识概念
    PythonStudy——PyCharm使用技巧 Column Selection Mode(列选择模式)
    PythonStudy——函数对象的案例
    PythonStudy——函数嵌套定义 Function nesting definition
  • 原文地址:https://www.cnblogs.com/cnchengv/p/16741657.html
Copyright © 2020-2023  润新知