Qt自动连接操作
Qt AutoConnect actions
我使用qt设计器创建了一个表单,并使用objectName actionEmployeeWin
创建了QAction,我想使用qt的自动连接功能,但它不起作用
main_win.cpp
#include "main_win.h"
#include "ui_mainwindow.h"
#include "employe_win.h"
#include <QSettings>
#include <QTextEdit>
#include <iostream>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
empWin(nullptr), providerWin(nullptr)
{
// setting up ui and loading last geometry
ui->setupUi(this);
QSettings settings;
restoreGeometry(settings.value("MAINWINDOW/GEOMETRY").toByteArray());
restoreState(settings.value("MAINWINDOW/WINSTATE").toByteArray());
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::closeEvent(QCloseEvent *evt) {
QSettings appSetting;
appSetting.setValue("MAINWINDOW/GEOMETRY", saveGeometry());
appSetting.setValue("MAINWINDOW/WINSTATE", saveState());
QMainWindow::closeEvent(evt);
}
void MainWindow::on_actionEmployeeWin_triggered(bool checked)
{
std::cout << "working"; // do not show
}
main_win.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "employe_win.h"
#include "provider_win.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void closeEvent(QCloseEvent *evt);
void on_actionEmployeeWin_triggered(bool checked);
private:
void createMenu();
Ui::MainWindow *ui;
EmployeeWindow *empWin;
ProviderWindow *providerWin;
};
#endif // MAINWINDOW_H
您需要从Ui表单继承才能使用自动连接功能。
请参见此处:http://doc.qt.io/qt-5/qtuitools-multipleinheritance-example.html
注意:我通常不建议依赖自动连接功能,只是因为这样的问题。自动连接是非显式的,它们的问题很难调试。QMetaObject
的魔力太多了,不合我的口味。
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 重载操作程序时出错>>用于类中的字符串 memebr
- 当套接字连接断开时检测C/C++Unix
- 对字符串进行位操作
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 对字符数组中的元素执行逐位操作
- 如何在directx/c++中进行平移/缩放操作
- 逐位操作的隐式类型转换
- 无法在windows上使用mingw将sqlite3与c连接
- 为什么一个向量上的多线程操作很慢
- 某些 boost::asio 异步函数是否将处理程序连接到操作,以便处理程序被触发一次?
- 范围-v3 如何操作::使用分隔符连接
- C/C++ 套接字:如果我在 IPv6 TCP 连接之前执行任何操作,则连接将失败
- 菜单操作连接找不到插槽
- 如何与SQL Server 2008建立稳定的连接,并在C 中编码我的第一个CRUD操作
- Qt自动连接操作
- 不需要O(1)操作来连接两个forward_list中的元素
- 如何在不使用信号插槽连接的情况下触发操作