re : 从零开始的QT学习(1)

环境:

QT Creator 4.10.0(community)

1.GUI应用程序设计基础

1)项目文件

   包含头文件.h文件,这里边保管类的声明,以及成员方法的声明。

   包含.pro文件,它是一些设置文件。

   包含.ui文件,它是一个XML格式存储的窗体的元件及其布局文件。

   包含.cpp文件,里边基本上放的都是类的定义。

2)代码分析

   主函数 main()

   主函数内容很少,里边只包含了一个窗口类,以及调用了一下显示,调用了能让程序持续运行的函数。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWDialog w;
    w.show();
    return a.exec();//应用程序运行
}

   类声明里边的命名空间:

QT_BEGIN_NAMESPACE
namespace Ui { class QWDialog; }
QT_END_NAMESPACE

   一个派生类,指向QWdialog类型的指针负责连接程序的界面。这个类包含了两个成员函数,第一个是下划线,第二个是调颜色。

class QWDialog : public QDialog
{
    Q_OBJECT

public:
    QWDialog(QWidget *parent = nullptr);
    ~QWDialog();

private slots:
    void on_radioButton_clicked(bool checked);
    void setTextFontColor();
private:
    Ui::QWDialog *ui;
};

   接下来是类的构造函数

   connect就是QT的灵魂所在了,它负责联系信号的槽的关系,槽就是一个函数,它就是正常的C++函数,不过是为了响应信         号,所以叫做槽函数,connect有四个形参,从左至右分别是,发送信号的对象、信号、响应信号的对象、信号。,每次做好一个信号之后,一定要有之对应的槽函数响应信号。

QWDialog::QWDialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::QWDialog)
{
    ui->setupUi(this);
    connect(ui->radioButton,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
    connect(ui->radioButton_2,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
}

   通过拖拽组件,我做好了我的第一个QT程序。

它包含了3个标签,两个按钮,两个文本框,两个对勾框。对勾框可以调整颜色和下划线(蓝色的字体。),以下是两个成员函数

void QWDialog::on_radioButton_clicked(bool checked)
{
    QFont font = ui->label->font();
    font.setUnderline(checked);
    ui->label->setFont(font);//设置下划线
}

void QWDialog::setTextFontColor()
{
    QPalette plet=ui->textEdit->palette();
    if(ui->radioButton->isChecked())
        plet.setColor(QPalette::Text,Qt::blue);
    else if(ui->radioButton_2->isChecked())
        plet.setColor(QPalette::Text,Qt::red);
    else
        plet.setColor(QPalette::Text,Qt::black);
    ui->textEdit->setPalette(plet);//设置文本框内的颜色
}
发布了2 篇原创文章 · 获赞 0 · 访问量 150

猜你喜欢

转载自blog.csdn.net/the_youngs_dream/article/details/104031587