【无标题】Qt学习记录--Day001 **可视化UI设计**

界面设计

通过UI设计器来实现界面的搭建和一些基础的signal函数和solt函数
基类选择QDialog类, 关于qdialog和qmainwindow这两个基类的区别是什么?
以下是万能的chatgpt的回答

QDialog和QMainWindow都是Qt框架中的基础类,用于创建图形用户界面(GUI)应用程序。

QDialog类提供了一个模态对话框,通常用于显示一个对话框窗口,让用户输入一些信息或执行一些操作,然后返回结果。对话框是一个独立的窗口,通常只显示少量的信息或者功能。

而QMainWindow类提供了一个主窗口,通常包含多个子窗口,如工具栏、菜单栏、状态栏、中央工作区等,常用于实现复杂的应用程序界面。主窗口通常是非模态的,允许用户同时进行多个操作。

因此,两者最主要的区别在于其应用场景。如果只需要简单地显示一个对话框,那么QDialog是更好的选择;如果需要创建一个复杂的应用程序窗口,那么QMainWindow则更为适合。

总之, 对于我这个纯新手来说, 目前这两个没区别

可视化的界面设计, 如下图
在这里插入图片描述
都是通过拖曳控件(widget)来实现的, 需要注意的就是每个控件的名字要改一下, 因为等下的点击方式生成的槽函数的名字格式是

void on_<object_name>_<signal_name>(<signal parameter); // 如果默认名字_1, _2就比较难分辨

最后的效果是上图右方所示.

代码部分
最重要的signal函数和solt函数部分, 以下是我的个人作为新手的初步认知:
它们两个都是特殊的函数, 可以有参数且前者的参数的个数应该大于或者等于后者
它们之间的连接如果是自己写的话是这样的

QObject::connect(sender, SIGNAL(signal()), receiver, SOLT(SOLT()));

而QObject是所有类的基类, 所以可以省略
也就是

connect(sender, SIGNAL(signal()), receiver, SOLT(SOLT()));

一个信号函数可以连接多个槽函数, 一个槽函数也可以连接多个信号函数;
甚至可以一个信号函数连接另一个信号函数(这是书上看的, 目前没遇到)

另一种槽函数生成方法
通过右键控件, “转到槽”, 然后选择信号函数, 会自动在dialog.h头文件里面生成槽函数的定义
然后再dialog.cpp里面生成个架子等待填充内容
在这里插入图片描述
这里之所以信号函数里面带了一个bool类型的参数, 是因为生成信号函数时我选择了clicked(bool), 这样就会传来一个参数所以当前的checkBox有没有被选中

这里没有写connect是构造函数里有个setupUI里面有条语句

QMetaObject::connectSlotsByName(Dialog); // 遍历界面所有组件然后通过名字和信号关联

自定义信号和槽的连接
通过点击复选框来改变文本颜色

void Dialog::setTextFontColor() // bool checked还是不使用了, 因为无法判断是哪个颜色选项被选择了
{
//    inline void QFont::setBold(bool enable)
//    { setWeight(enable ? Bold : Normal); }
    // 可以看到, 设置粗体就是根据bool值来的, 所以click带个bool比较好
    QPalette plet = ui->txtEdit->palette();
//    plet.setColor(QPalette::Text, Qt::green);
    if (ui->rBtnBlack->isChecked()) {
        plet.setColor(QPalette::Text, Qt::black);
    } else if (ui->rBtnBlue->isChecked()) {
        plet.setColor(QPalette::Text, Qt::blue);
    } else if (ui->rBtnRed->isChecked()) {
        plet.setColor(QPalette::Text, Qt::red);
    } else {
        plet.setColor(QPalette::Text, Qt::black);
    }

    ui->txtEdit->setPalette(plet);
}

https://doc.qt.io/qt-5/reference-overview.html
官方文档, 可以用来查各种api

最后ui指针是什么
ui指针可以控制界面上的所有小组件
它是从UI_Widget继承的一个类
dialog.h文件里的Ui::dialog和类dialog同名, 但是是不同的类,
总之ui指针可以访问可视化界面的所有组件.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值