Qt,QDialog按钮不是Respondig
Qt, QDialog buttons not Respondig
对话框打开,有两个按钮,"确定"和"取消"。所有按钮都不会响应用户单击。我必须按右上角的 X 才能取消对话框。
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (obj == mTabWidget && event->type() == QEvent::MouseButtonDblClick)
{
// query and set tab(s) names
QTabWidget *tab = qobject_cast<QTabWidget *>(obj);
if(tab)
{
QDialog dlg;
QVBoxLayout la(&dlg);
QLineEdit ed;
la.addWidget(&ed);
QDialogButtonBox bb(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
la.addWidget(&bb);
dlg.setLayout(&la);
if(dlg.exec() == QDialog::Accepted)
{
tab->setTabText(0, ed.text());
return true;
}
}
}
// Standard event processing
return QObject::eventFilter(obj, event);
}
我是否缺少任何connect()
线路或信号?我试图阅读Qt文档,但据我所知,调用QDialogButtonBox::OK
被处理为已接受。
更新:
新建对话框功能
好的,我已经创建了一个处理对话框的新函数,我从事件函数调用它。 它仍然没有响应,现在在终端上,我看到一个错误,说:没有这样的插槽 MainWindow::accept() 和另一个用于拒绝。我知道我在 .h 文件中没有这两个插槽。我试图找到如何构建插槽,但我做不到,任何帮助都会很棒。谢谢
void MainWindow::initializeBOX()
{
QDialog dlg;
QVBoxLayout la(&dlg);
QLineEdit ed;
la.addWidget(&ed);
//QDialogButtonBox bb(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
//btnbox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
la.addWidget(buttonBox);
dlg.setLayout(&la);
if(dlg.exec() == QDialog::Accepted)
{
mTabWidget->setTabText(0, ed.text());
}
}
与其
从事件文件管理器启动对话框,不如通过在代码中重载该虚拟函数来捕获 QWidget::mouseDoubleClickEvent。只要它已经是一个回调,您就可以立即从那里做更多的事情,包括对话框。或者可以将信号发送到执行对话框的插槽(更干净一点)。我会从mouseDoubleClickEvent事件处理程序发出信号,并使父QWidget::mouseDoubleClickEvent使用事件以避免可能的复杂性,尤其是在将代码移植到其他平台时。
事件筛选器用于非标准事件处理。在您的案例中,没有什么非标准的。
相关文章:
- 问:如何使用C++中的按钮从窗口打开窗口
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- QML按钮点击功能执行顺序
- 当用户超过按钮点击限制时报告
- 函数计算用户按下按钮的频率
- 热键/按钮,根据需要进行编译,但不运行(在F5和Ctrl+Shift+B之间)
- FLTK:按下哪个按钮 - 将数字传递给按钮的回调 (lambda)
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- Qt自定义QPush按钮未显示在布局上
- SDL 操纵杆按钮按下/C++
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- Qt中来自不同功能的按钮引用
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- ImGui 在单击按钮后冻结
- WinAPI 无法创建按钮
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- 如何使用connect将qml按钮与同一类的cpp函数连接起来
- 按钮按下打开 OLED ESP32
- Qt,QDialog按钮不是Respondig