Qt Day01

作者: 爱笑的人26 | 来源:发表于2016-05-02 20:10 被阅读41次

    Qt5.6安装遇到的问题

    运行qt-opensource-windows-x86-mingw492-5.6.0.exe,提示无法启动程序,下载VC运行库就可以运行了。参考


    最近要开始忙Qt开发,也开始记录一下期间过程,把Qt开发环境搭建好之后发现在帮助目录没有参考文档,不知道其他朋友有没有遇到类似情况。如果遇到了进入工具菜单->选项->帮助->文档
    在Qt->doc文件夹内添加qch文件。

    Qt帮助文档.png

    Qt打包发布程序

    windeployqt工具使用


    Qt设置应用程序图标

    首先在工程目录下放入ico图标文件,新建.rc文件,输入
    IDI_ICON1 ICON DISCARDABLE "XXX.ico"
    在项目.pro文件添加下面一行代码RC_FILE += xxx.rc


    使用.ui文件

    通过Qt设计师界面添加XXX.ui文件,通过拉取控件方式生成界面,编译生成ui_XXX.ui文件。

    ** Form generated from reading UI file 'dialog.ui'
    **
    ** Created by: Qt User Interface Compiler version 5.6.0
    **
    ** WARNING! All changes made in this file will be lost when recompiling UI file!
    ********************************************************************************/
    #ifndef UI_DIALOG_H
    #define UI_DIALOG_H
    #include <QtCore/QVariant>
    #include <QtWidgets/QAction>
    #include <QtWidgets/QApplication>
    #include <QtWidgets/QButtonGroup>
    #include <QtWidgets/QDialog>
    #include <QtWidgets/QHeaderView>
    #include <QtWidgets/QLabel>
    QT_BEGIN_NAMESPACE
    class Ui_Dialog//定义了Ui_Dialog类
    {
    public:
        QLabel *HelloDialog;
        void setupUi(QDialog *Dialog)//生成界面的函数
        {
            if (Dialog->objectName().isEmpty())
                Dialog->setObjectName(QStringLiteral("Dialog"));
            Dialog->resize(400, 300);
            HelloDialog = new QLabel(Dialog);
            HelloDialog->setObjectName(QStringLiteral("HelloDialog"));
            HelloDialog->setGeometry(QRect(120, 120, 91, 51));//设置了他的大小位置。
            retranslateUi(Dialog);//实现了对窗口里面的字符串进行编码转换的功能
            QMetaObject::connectSlotsByName(Dialog);//使得窗口中部件按对象名进行信号和槽的关联
        } // setupUi
        void retranslateUi(QDialog *Dialog)
        {
            Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0));
            HelloDialog->setText(QApplication::translate("Dialog", "Hello World!!!", 0));
        } // retranslateUi
    };
    namespace Ui {
        class Dialog: public Ui_Dialog {};
    } // namespace Ui
    QT_END_NAMESPACE
    #endif // UI_DIALOG_H
    

    使用ui_XXX.h文件

    int main(int argc, char *argv[])
    {
      QApplication a(argc,argv);
      QDialog w;
      Ui::HelloDialog ui;
      ui.setupUi(&w);
      w.show();
      return a.exec();
    }```
    ###自定义C++类中添加.ui文件
    1.自定义类名和ui文件中类名相同添加命名空间
    `namespace Ui{ class Dialog}`
    2.定义Q_OBJECT宏扩展普通C++功能,如信号和槽,必须在类的最开始处定义

    相关文章

      网友评论

          本文标题:Qt Day01

          本文链接:https://www.haomeiwen.com/subject/vnylrttx.html