Lee_Serena 2024-05-23 18:46 采纳率: 14.3%
浏览 9
已结题

为什么定义的Qpushbutton指针不用在widget.h里声明

有点蠢的问题
其他自定义的比如widget,teacher类就需要声明

img

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-05-23 18:46
    关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    在定义Qpushbutton指针的时候不需要在widget.h里声明的原因是因为QPushButton是Qt的一个内置控件,已经被包含在Qt头文件中,不需要在widget.h文件中进行声明。

    而自定义的类如widget和teacher等,是需要在widget.h文件中进行声明的,因为这些类是我们自己定义的,不属于Qt内置控件。

    解决方案:

    修改代码,只需要在widget.cpp文件中定义QPushButton指针即可,无需在widget.h文件中进行声明。正确的代码如下所示:

    QPushButton *btn=new QPushButton("open",this);
    

    此外,如果想要正确关闭窗口,需要在connect函数中使用Lambda表达式, 根据按钮文本的内容判断来进行关闭窗口的操作。可以按以下步骤:

    1. 编写Lambda表达式,根据按钮文本的内容来判断是否关闭窗口。
    connect(btn, &QPushButton::clicked, [this]() {
        if (btn->text() == "open") {
            wp->show();
            btn->setText("close");
        }
        else if(btn->text() == "close"){
            wp->close();
            btn->setText("open");
        }
    }); 
    
    1. 在connect函数中通过传递Lambda表达式实现按钮的控制,来关闭或者打开窗口。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 创建了问题 5月23日