qt6-QPushButton无法显示为类

qt6-QPushButton无法显示为类_第1张图片

问题

在编写QT程序时,不同颜色表示不同的含义。在设计基本的界面,需要使用QRadioButton时,相应的字符为紫色,紫色为类名。这篇简单说明了下,也可以鼠标点击页面,可以出现提示。

但是上面图片中显示,QPushButton没有自动转换为紫色,而是依然保持为黑色,鼠标点击也没有任何提示。察看dialog.h头文件,可以看到包含QPushButton文件。直到发现,pirate中包含了相关控件的对象名的声明,才意识到。虽然声明这个类,但是仍然需要使用new操作符作用一下。这与C语言编写的逻辑不同,毕竟C语言中,这都直接说明了要使用这个指针变量,应该是可以用的。这提醒我,在没有熟悉C++语法的情况下,轻易会带入C语言的编写逻辑,尤其这些程序还是我复制他人的,更加会出现这种情况。

#include 
#include 
#include 
#include 
#include 

class Dialog : public QDialog
{
    Q_OBJECT

private:
    QCheckBox *chkBoxUnder;
    QCheckBox *chkBoxItalic;
    QCheckBox *chkBoxBold;

    QRadioButton *radioBlack;
    QRadioButton *radioRed;
    QRadioButton *radioBlue;

    QPlainTextEdit *txtEdit;

    QPushButton *pushClear;
    QPushButton *pushOK;
    QPushButton *pushclose;


public:
    Dialog(QWidget *parent = nullptr);
    ~Dialog();
private:


};

如果觉得麻烦,也可以直接在进行new操作的时候,直接在指针前面添加类名。不过这种在前后都添加类的作法,倒是显得多此一举。值得注意的是,没有必要研究为什么要进行这种的设计,否则学习的过程就会陷入各种细节中。

QPushButton *pushTest=new QPushButton("this");

软件预处理

由于qt的软件处理所有界面字符预处理,所以有些代码写上去之后,不会马上显示相应的颜色。比如如下的代码,由于qt没有马上检测到我在其它文件中所做的修改,导致它无法短时间内识别其中的改变。因此,写QT代码时,尤其代码体量比较大时,需要考虑编译环境对文本处理的影响。此时,如果没有发现明显问题,可以直接运行程序,或者等待一会就会发现函数名等颜色发生变化。

connect(chkBoxBold,SIGNAL(clicked(bool)),this,SLOT(do_chkBoxBold(bool)));

注意:需要提醒的是,在学习QT过程,有种冲动想要了解C++语法和各种函数的细节。但是目前情况来看,这种做没有实在意义,会导致对各种函数概念咬文嚼字。

你可能感兴趣的:(qt,qt)