目錄
1.1 實例功能
1.2 界面創(chuàng)建
1.3?界面組件的創(chuàng)建與布局
1.4?信號與槽的關(guān)聯(lián)
1.1 實例功能
? ?首先建立一個 Widget Appliation 項目 samp2_3,在創(chuàng)建項目向?qū)е羞x擇基類時,選擇基類 QDialog,新類 的名稱命名為 QWDlgManual,關(guān)鍵是取消創(chuàng)建窗體,即不勾選“Generate form”(創(chuàng)建界面)復(fù)選框。創(chuàng)建后的項目文件目錄樹下沒有 qwdlgmanual.ui 文件。 文章來源:http://www.zghlxwxcb.cn/news/detail-837488.html

1.2 界面創(chuàng)建
#include <QDialog>
#include <QCheckBox>
#include <QRadioButton>
#include <QPlainTextEdit>
#include <QPushButton>
class QWDlgManual : public QDialog
{
Q_OBJECT
private:
QCheckBox *chkBoxUnder;
QCheckBox *chkBoxItalic;
QCheckBox *chkBoxBold;
QRadioButton *rBtnBlack;
QRadioButton *rBtnRed;
QRadioButton *rBtnBlue;
QPlainTextEdit *txtEdit;
QPushButton *btnOK;
QPushButton *btnCancel;
QPushButton *btnClose;
void iniUI();//UI 創(chuàng)建與初始化
void iniSignalSlots();//初始化信號與槽的鏈接
private slots:
void on_chkBoxUnder(bool checked); //Underline 的 clicked(bool)信號的槽函數(shù)
void on_chkBoxItalic(bool checked);//Italic 的 clicked(bool)信號的槽函數(shù)
void on_chkBoxBold(bool checked); //Bold 的 clicked(bool)信號的槽函數(shù)
void setTextFontColor(); //設(shè)置字體顏色
public:
QWDlgManual(QWidget *parent = 0);
~QWDlgManual();
};
void QWDlgManual::on_chkBoxUnder(bool checked)
{
QFont font=txtEdit->font();
font.setUnderline(checked);
txtEdit->setFont(font);
}
QWDlgManual::QWDlgManual(QWidget *parent) : QDialog(parent)
{
iniUI(); //界面創(chuàng)建與布局
iniSignalSlots(); //信號與槽的關(guān)聯(lián)
setWindowTitle("Form created mannually");
}
1.3?界面組件的創(chuàng)建與布局
iniUI() 函數(shù)實現(xiàn)界面組件的創(chuàng)建與布局,以及屬性設(shè)置。下面是 iniUI() 的完整代碼: 文章來源地址http://www.zghlxwxcb.cn/news/detail-837488.html
void QWDlgManual::iniUI()
{
//創(chuàng)建 Underline, Italic, Bold 3 個 CheckBox,并水平布局
chkBoxUnder=new QCheckBox(tr("Underline"));
chkBoxItalic=new QCheckBox(tr("Italic"));
chkBoxBold=new QCheckBox(tr("Bold"));
QHBoxLayout *HLay1=new QHBoxLayout;
HLay1->addWidget(chkBoxUnder);
HLay1->addWidget(chkBoxItalic);
HLay1->addWidget(chkBoxBold);
//創(chuàng)建 Black, Red, Blue 3 個 RadioButton,并水平布局
rBtnBlack=new QRadioButton(tr("Black"));
rBtnBlack->setChecked(true);
rBtnRed=new QRadioButton(tr("Red"));
rBtnBlue=new QRadioButton(tr("Blue"));
QHBoxLayout *HLay2=new QHBoxLayout;
HLay2->addWidget(rBtnBlack);
HLay2->addWidget(rBtnRed);
HLay2->addWidget(rBtnBlue);
//創(chuàng)建確定, 取消, 退出 3 個 PushButton, 并水平布局
btnOK=new QPushButton(tr("確定"));
btnCancel=new QPushButton(tr("取消"));
btnClose=new QPushButton(tr("退出"));
QHBoxLayout *HLay3=new QHBoxLayout;
HLay3->addStretch();
HLay3->addWidget(btnOK);
HLay3->addWidget(btnCancel);
HLay3->addStretch();
HLay3->addWidget(btnClose);
//創(chuàng)建文本框,并設(shè)置初始字體
txtEdit=new QPlainTextEdit;
txtEdit->setPlainText("Hello world\n\nIt is my demo");
QFont font=txtEdit->font(); //獲取字體
font.setPointSize(20);//修改字體大小
txtEdit->setFont(font);//設(shè)置字體
//創(chuàng)建垂直布局,并設(shè)置為主布局
QVBoxLayout *VLay=new QVBoxLayout;
VLay->addLayout(HLay1); //添加字體類型組
VLay->addLayout(HLay2);//添加字體顏色組
VLay->addWidget(txtEdit);//添加 PlainTextEdit
VLay->addLayout(HLay3);//添加按鍵組
setLayout(VLay); //設(shè)置為窗體的主布局
}
1.4?信號與槽的關(guān)聯(lián)
void QWDlgManual::iniSignalSlots()
{
//三個顏色 QRadioButton 的 clicked()信號與 setTextFontColor()槽函數(shù)關(guān)聯(lián)
connect(rBtnBlue,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
connect(rBtnRed,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
connect(rBtnBlack,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
//三個字體設(shè)置的 QCheckBox 的 clicked(bool)信號與相應(yīng)的槽函數(shù)關(guān)聯(lián)
connect(chkBoxUnder,SIGNAL(clicked(bool)),
this,SLOT(on_chkBoxUnder(bool)));
connect(chkBoxItalic,SIGNAL(clicked(bool)),
this,SLOT(on_chkBoxItalic(bool)));
connect(chkBoxBold,SIGNAL(clicked(bool)),
this,SLOT(on_chkBoxBold(bool)));
//三個按鈕的信號與窗體的槽函數(shù)關(guān)聯(lián)
connect(btnOK,SIGNAL(clicked()),this,SLOT(accept()));
connect(btnCancel,SIGNAL(clicked()),this,SLOT(reject()));
connect(btnClose,SIGNAL(clicked()),this,SLOT(close()));
}
到了這里,關(guān)于嵌入式 QT純代碼設(shè)計UI的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!