窗口界面的可视化设计是对用户而言的,UI文件都会被UIC转换为C++程序文件。如果不使用Qt Designer进行UI可视化设计,直接编写C++代码也是可以创建界面的,而且某些界面效果是可视化设计无法实现的。如果习惯了用纯代码的方式设计界面,就可以采用纯代码的方式创建界面。Qt自带的示例项目基本都是用纯代码方式创建UI。
5.1创建项目
创建项目GUI_test2,选择窗口基类为QDialog,但是不选择Generate from,这样就可以创建一个没有窗口UI文件的dialog.ui.
5.2代码实现
使用代码实现第4章相同界面的布局。
1.Dialog类的定义
实现功能后的文件dialog.h完整定义如下:
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QWindow>
#include <QCheckBox>
#include <QRadioButton>
#include <QPushButton>
#include <QPlainTextEdit>
class Dialog : public QDialog
{
Q_OBJECT
private:
QCheckBox *chkBoxUnder;//三个复选框
QCheckBox *chkBoxItalic;
QCheckBox *chkBoxBold;
QRadioButton *radioBlack;//三个单选按钮
QRadioButton *radioRed;
QRadioButton *radioBlue;
QPushButton *btnOK; //三个按钮
QPushButton *btnCancel;
QPushButton *btnClose;
QPlainTextEdit *textEdit;//文本框
void iniUI();//UI创建与初始化
void iniSignalSlots();//初始化信号与槽的连接
private slots:
void do_chkBoxUnder(bool checked);//under复选框
void do_chkBoxItalic(bool checked);
void do_chkBoxBold(bool checked);
void do_setFontColor();//设置文字颜色
public:
Dialog(QWidget *parent = nullptr);
~Dialog();
};
#endif // DIALOG_H
Dialog.cpp内容定义
#include "dialog.h"
#include <QHBoxLayout>
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
iniUI();//界面创建与布局
iniSignalSlots();//信号与槽的关联
setWindowTitle("代码创建UI");//设置窗口标题
}
Dialog::~Dialog() {
}
void Dialog::do_chkBoxUnder(bool checked)
{
QFont font=textE
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END
暂无评论内容