Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在程序窗口打开时自动启用信号 我正在使用QT4作为我的C++程序,我希望在我的窗口打开时自动启用一个信号,所以请告诉我在程序窗口打开时如何启用信号。_C++_Qt - Fatal编程技术网

如何在程序窗口打开时自动启用信号 我正在使用QT4作为我的C++程序,我希望在我的窗口打开时自动启用一个信号,所以请告诉我在程序窗口打开时如何启用信号。

如何在程序窗口打开时自动启用信号 我正在使用QT4作为我的C++程序,我希望在我的窗口打开时自动启用一个信号,所以请告诉我在程序窗口打开时如何启用信号。,c++,qt,C++,Qt,我是QT的新手,请给出详细描述 谢谢您可以在课堂上重写公共函数演示,例如: 主窗口 祝你好运 覆盖QWidget::showEvent()(请参阅)什么是“启用信号”?发出、连接或取消阻止以前被阻止的信号(使用QObject::blockSignals()成员)?无论您想做什么,都应该覆盖Widget::showEvent(),以便在显示窗口时执行某些操作。这不是个好主意。有一个受QWidget::showEvent()保护的虚拟函数,应该重新实现。您的示例的一个缺点是:有两个函数“show()

我是QT的新手,请给出详细描述


谢谢

您可以在课堂上重写公共函数演示,例如:

主窗口


祝你好运

覆盖
QWidget::showEvent()
(请参阅)

什么是“启用信号”?发出、连接或取消阻止以前被阻止的信号(使用QObject::blockSignals()成员)?无论您想做什么,都应该覆盖Widget::showEvent(),以便在显示窗口时执行某些操作。这不是个好主意。有一个受QWidget::showEvent()保护的虚拟函数,应该重新实现。您的示例的一个缺点是:有两个函数“show()”和“myShow()”执行相同的操作,并且在这个类中可用,但是您需要记住(并让其他团队成员记住)只使用“myShow()”@VestniK我知道这一点,我认为jopa是正确的,当我们重新实现QWidget::showEvent()时,这是正确的方法功能,但是!我会阅读,而且我是QT新手,所以请给出一个详细的描述,至少对我来说,这个方法对于Peeyus来说太复杂了。VestniK,你学过C++、QT或者是书的结尾吗?没什么私事。我给你详细解释了为什么我认为听从你的建议是个坏主意。不管Peeyush对Qt的了解如何,我相信他将能够重新实现一个受保护的虚拟功能。我也相信,从一开始就应该学习最佳实践。我认为你的建议只是在没有其他方法实现这一特性的情况下才是好的,因为它可能导致难以调查的bug。我给你的答案加-1,因为我真的认为这是个糟糕的答案。别把它当回事。
class MainWindow : public QMainWindow {
    Q_OBJECT;
public:
    MainWindow();

    void myShow() {
        activateWindow();
        show();
        emit mySignalFunc();
    }
signals:
    void mySignalFunc() {
        qDebug() << "Here is my signal!!!";
    };
};
MainWindow wnd;
wnd.myShow();