在Action信号里,获得点击的action文本

在Qt5中,你可以使用QAction :: triggered()信号来检测操作被点击时。当操作的快捷键被激活时,或者当操作从菜单或工具栏中被选择时,将发出此信号。可以将信号连接到插槽函数,然后可以使用 QObject::sender() 函数获取发出信号的QAction的指针,然后可以使用 QAction::text() 函数获取action的文本。

connect(action, &QAction::triggered, this, [this](){
    QAction* action = qobject_cast<QAction*>(sender());
    QMessageBox::information(this, "Info", action->text() + " 被点击.");
});

另外,你还可以使用QAction :: setData()为操作设置特定值并在以后使用。如果有多个具有相同名称的操作,这很有用。

 action->setData(QVariant(1));
 connect(action, &QAction::triggered, this, [this](){
    QAction* action = qobject_cast<QAction*>(sender());
    int data = action->data().toInt();
    QMessageBox::information(this, "Info", QString::number(data) + " 被点击.");
 });
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 QTextEdit 控件来显示和编辑文本文件的内容。以下是一个简单的示例代码: ```cpp #include <QtWidgets> class MainWindow : public QMainWindow { public: MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) { // 创建 QTextEdit 控件 textEdit = new QTextEdit(this); setCentralWidget(textEdit); // 创建菜单 QMenu *fileMenu = menuBar()->addMenu(tr("文件")); QAction *openAction = fileMenu->addAction(tr("打开")); QAction *saveAction = fileMenu->addAction(tr("保存")); // 连接信号槽 connect(openAction, &QAction::triggered, this, &MainWindow::openFile); connect(saveAction, &QAction::triggered, this, &MainWindow::saveFile); } private slots: void openFile() { // 打开文件对话框 QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件")); if (!fileName.isEmpty()) { // 读取文件内容并显示在 QTextEdit 控件中 QFile file(fileName); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QString content = file.readAll(); textEdit->setPlainText(content); file.close(); } } } void saveFile() { // 保存文件对话框 QString fileName = QFileDialog::getSaveFileName(this, tr("保存文件")); if (!fileName.isEmpty()) { // 将 QTextEdit 控件中的内容保存到文件中 QFile file(fileName); if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream out(&file); out << textEdit->toPlainText(); file.close(); } } } private: QTextEdit *textEdit; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); } ``` 这段代码创建了一个带有 QTextEdit 控件的窗口,并在菜单中添加了打开和保存文件的功能。当用户点打开菜单时,会弹出文件对话框让用户选择要打开的文本文件,然后将文件内容显示在 QTextEdit 控件中。当用户点保存菜单时,会弹出文件对话框让用户选择保存文件的路径,然后将 QTextEdit 控件中的内容保存到文件中。 您可以根据自己的需求对代码进行修改和扩展。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值