Qt:为什么connect()只在主窗口类中工作
Qt: why does connect() work only in the main window class?
下面是一个简单的代码,用于创建一个按钮并分配一个 onclick 处理程序:
auto btn = new QPushButton("CLICK ME");
connect(btn, SIGNAL(clicked()), this, SLOT(btn_Click()));
private slots:
void btn_Click() {
alert("clicked!");
}
如果在主窗口类中调用,它应该工作。但是,当我尝试在子窗口中执行此操作时,单击该按钮没有任何作用。子窗口如下所示:
auto settingsWindow = new SettingsWindow();
settingsWindow->show();
我想它以某种方式与接收器对象相连,该对象现在是一个不同的窗口。但是我怎样才能让它工作呢?
为了能够在自己的类中声明信号/插槽,您应该在类中包含Q_OBJECT指令:
class SettingsWindow {
Q_OBJECT
...
};
您应该在类设置窗口中添加一个宏以启用单行接收。添加"Q_OBJECT",如下所示。
class MainWidget : public QWidget
{
Q_OBJECT
public:
MainWidget();
....
相关文章:
- 如果不在窗口 10 中声明名为 openCV 的 openCV namedWindow,QT 图像显示将无法正常工作
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 自 Windows 10 20H1 以来,具有单独线程的多个窗口停止工作
- 我想使用此代码单击某个特定窗口,但它无法正常工作
- 渲染窗口无法跨多个函数工作
- QtCUrl post不再工作(Linux nok...窗口确定)
- 如何将C++ dll 在 C# 窗口窗体应用程序下的工作线程中运行
- 如何在工作区中使用 HTML/CSS UI 在C++中制作本机 UI 窗口
- 在工作线程中使用 QT 主窗口
- xcb_get_image_reply另一个工作区/桌面上的窗口失败
- Qt拖放在窗口中工作.我可以做到我只能放入Qlabel而不是整个窗口吗?
- 如何将子窗口(MFC 应用程序)的工作区保存到图像
- 从Windows注册表中保存的工作区检索窗口放置
- 资源窗口在其他系统上无法正常工作 (Visual Studio 2012)
- 将工作线程信号与主窗口插槽 (Qt5) 连接时出错
- CMD窗口停止工作,文本文件使用fstream读取错误
- 如何允许工作线程更新 X11 窗口
- Qt:为什么connect()只在主窗口类中工作
- C++ 如果某处有空间,则窗口系统 ( "path" ) 无法正常工作
- WM_PAINT在最小化并恢复窗口后停止工作