You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向MainWindow类添加st()函数后调用失败,报错Ui::MainWindow无该成员

解决Qt中'class Ui::MainWindow' has no member named 'st'报错问题

嘿,这个问题很好搞定!咱们先把报错的根源捋清楚:
你把st()函数定义在了自己写的MainWindow类里,但调用的时候用了ui->st()——可ui是Ui::MainWindow类的指针啊!这俩根本不是同一个类:

  • Ui::MainWindow是Qt Designer自动生成的界面类,只管界面控件的布局和初始化;
  • 你写的MainWindow是继承自QMainWindow的业务逻辑类,ui只是它的一个成员指针而已。

所以正确的调用方式有两种:

方法一:直接调用自身的成员函数(推荐)

你肯定是在MainWindow的成员函数(比如槽函数on_pushButton_4_clicked)里调用st(),直接写函数名或者用this指代自身就行:

void MainWindow::on_pushButton_4_clicked() {
    // 直接调用,或者 this->st(); 效果完全一致
    st();
}

方法二:把函数加到Ui类(不推荐)

如果你非要让Ui::MainWindow拥有st()函数,一定要记住:绝对不要直接修改Qt自动生成的ui_mainwindow.h文件——下次用Qt Designer修改界面时,这个文件会被重新生成,你的代码会直接丢失。如果确实有这种需求,得通过Qt Designer的自定义控件机制实现,但这完全没必要,方法一已经足够解决问题了。

内容的提问来源于stack exchange,提问作者vico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:39:47