【问题标题】:Qt: use ui pointer in separate functionQt:在单独的函数中使用 ui 指针
【发布时间】:2014-02-26 03:37:08
【问题描述】:

我想在操作发生时使用单独的函数来更改 GUI ui。

例如:这是我点击菜单项的代码:

void MainWindow::on_actionImperial_triggered()
{
    ui->actionMetric->setChecked(false);
    ui->z_unit_label->setText("inches");
    void gui_change();
}

我想调用函数gui_change(),并更改用户界面。

void gui_change()
{
    ui->pushButton_2->setStyleSheet("color:grey");
    ui->pushButton->setStyleSheet("color:green");
}

这导致错误use of undeclared identifier 'ui',我是Qt 的新手,我花了几个小时谷歌搜索堆栈以确定如何让ui 在函数范围内,但没有成功。

【问题讨论】:

    标签: c++ qt pointers scope qt5


    【解决方案1】:

    你需要让gui_change()成为MainWindow的成员函数,然后声明为void MainWindow::gui_change()

    如果你只是写void gui_change(),那么它是一个独立的函数,不属于任何类或命名空间。 (顺便说一句,这是 C++ 问题,不是 Qt 问题)

    【讨论】:

    • 我尝试使它成为mainwindow.hpublic:下的成员函数,然后是public slots:,然后是private:,然后是private slots:,这些确实允许应用程序编译和运行,但该功能没有运行。知道为什么会这样吗?如果我将代码从函数内移动到调用函数的行,它运行良好。
    • @JimmyBanks 但是您是否将其作为mainwindow.cpp 中的成员函数?不要将其声明为void gui_change(),而是将其声明为void MainWindow::gui_change()。也不要这样称呼它:void gui_change(); 在你的MainWindow::on_actionImperial_triggered() 函数中。就这样称呼它:gui_change();.
    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 2011-01-29
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    相关资源
    最近更新 更多