永发信息网

Qt4 点击按钮打开一个外部程序,连接了槽和 QProcess,为什么还是不行?

答案:1  悬赏:80  手机版
解决时间 2021-03-25 01:23
  • 提问者网友:兔牙战士
  • 2021-03-24 22:26
Qt4 点击按钮打开一个外部程序,连接了槽和 QProcess,为什么还是不行?
最佳答案
  • 五星知识达人网友:鸽屿
  • 2021-03-24 23:37
QObject::connect((new Ui_MainWindow())->openControl,SIGNAL(clicked()), &app, SLOT(openFile()));

提问前应该先求助assitant,这是个好习惯追问SIGNAL(clicked()) SIGNAL和SLOT是个宏,不用他们直接用 " " 是一样的,没影响追答我觉得直接new Ui_MainWindow()不行吧,你主窗口的对象呢。改用绝对路径试试看,如果是路径的问题,那就获取可执行文件的路径,然后合成绝对路径追问new Ui_MainWindow() 应该没问题吧,直接用匿名的一个对象。通过这个匿名对象直接获得它内部的openControl ID

文件路径倒是没问题,因为如果我注释掉这个点击事件,直接在MAIN中开启QProcess::execute(".\\openControl.exe"); 是可以打开文件的。所以应该是这个信号连接的问题,蛋疼追答我觉得你new的是一个新对象,该对象的按钮和程序的按钮应该是不同的吧追问噢刚测试了一下,好像是这个的问题,Linux下运行是出现段错误,windows下就是点击事件没反应。那请问如果不这样写的话应该怎么写呢?我想调用的按钮openControl是在ui_openparamater.h中定义的。追答直接Ui->openControl不行吗。你搜索下如何获取到主窗口对象吧
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯