【发布时间】:2017-09-03 14:00:48
【问题描述】:
我正在构建一个 qt 应用程序,我必须在其中访问 ui 元素。但我收到错误
在静态成员函数中成员 'foo::ui' 的使用无效
代码很大,这里不能加。
ui的声明
private:
Ui::foo *ui;
在构造函数中初始化
foo::foo(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::foo)
{
ui->setupUi(this);
}
在出错的地方访问静态函数。
ui->fp->setText("Some Text");
静态函数声明。
static I eventCallback(PVOID i_pv_context,
T_xyz i_i_command,
PVOID i_pv_param);
主要代码
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
BarrierInterfaceModule w;
w.show();
return a.exec();
}
我在互联网上查看过,但没有得到解决方案。请让我知道是否有解决方法。如果您需要更多信息,请告诉我提前谢谢
【问题讨论】:
-
好吧,错误确实说明了这一点。
ui不是静态的,因此如果没有静态方法中的对象,您将无法使用它。为什么你需要那个方法是静态的,你可以把ui也设为静态吗? -
您的错误代码很简单。每个非静态成员函数都必须通过对象调用。
-
@SamiKuhmonen 它是第三方功能,所以它必须是静态的。
-
这就是静态函数的处理方式:它们不能访问非静态成员。该功能是否需要是静态的?如果是这样,请考虑将
ui传递给它。 -
@WhiZTiM 我会添加问题
标签: c++ qt static static-functions