(新司机求救)qt程序中如何在另一个类的成员函数中访问界面控件?

w22net 2016-08-24 11:34:37
主界面中访问button sendmsgBtn代码如下
void MainWindow::sendMsg()
{

ui->sendmsgBtn->setText(tr("发送"));
}

现在我想在另一个自己写的类中访问button sendmsgBtn 该怎么做??求救

void FrameHandler::volumeHandle(TSigPack *pSigPack)
{
//如下效果该怎么做
//ui->sendmsgBtn->setText(tr("发送"));
}
...全文
1068 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1. 给新建的类构造函数提供一个QPushButton类型的指针,在你的新类中创建一个成员变量m_sendBtnPtr,在构造函数中把sendmsgBtn的指针赋值给m_sendBtnPtr,这样就可以访问了。 2. 另外一种方法是,给你的新类创建一个signal,然后在你的ui所在的类中建立一个slot函数来接受signal。只要你想操作sendmsgBtn,你就在你新建的类中emit signal,然后你可以在slot函数收到信号后,按照你的需求来操作你的sendmsgBtn
冷静忍耐 2016-08-25
  • 打赏
  • 举报
回复
在FrameHandler类中定义一个sendmsgBtn,初始化为空。在MainWindow中把ui->sendmsgBtn设置给FrameHandler void FrameHandler::setMsgButtom(QPushButton *msgBtn) { sendmsgBtn = msgBtn; } void FrameHandler::volumeHandle(TSigPack *pSigPack) { //如下效果该怎么做 //ui->sendmsgBtn->setText(tr("发送")); if(sendmsgBtn) sendmsgBtn->setText(tr("发送")); }
满桌烟灰 2016-08-25
  • 打赏
  • 举报
回复
1、在你的另一个类中定义一个信号 2、在你的主程序中设置一个槽函数 3、将那个信号与这个槽连接即可。

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧