鱼C论坛

 找回密码
 立即注册
查看: 3382|回复: 3

求助PYQT5大神

[复制链接]
发表于 2017-6-5 13:03:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想知道怎么点击主窗口上一个按钮跳转到另一个窗口 有没有大神求帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-5 18:51:33 | 显示全部楼层
这个qt应该有例子的,可以用qt试一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-6 09:37:55 | 显示全部楼层
信号和槽
创建一个新的窗口,默认是不显示的,然后点击主窗口之后按钮之后发送信号,显示新建的窗口不就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-28 19:26:30 | 显示全部楼层
首先要说的是,你构架窗口有两种解决方案,一是就只用一个窗口,里面用两个界面,首先一个界面的visible为false,另一个为true。当你按下按钮后,两个界面的visible倒置即可。
方案二.就是你需要两个窗口...首先你需要在Python的入口代码中需要注册两个窗口(注:这里我默认你用的是qtquick而不是qtwidgt,若你用的是后者强力推荐你学qtquick)
  1.     #加载qml文件
  2.     engine.load(QtCore.QUrl('main.qml'))
  3.     engine.load(QtCore.QUrl('MyMainWindow.qml'))
  4.     loginView = engine.rootObjects()[0]
  5.     MainView = engine.rootObjects()[1]
复制代码

在这里我注册了两个窗口一个是main,一个是MyMainWindow,接下来的问题是怎么处理两个窗口的开闭关系,然而不幸的是对于两个窗口的处理余姚放到py代码中做后台处理.你需要在那两个对应的窗口的qml文件中写入操作窗口的js函数,然后做为函数接口供后台py调用..对于何时自动调用py后台的代码你就需要用信号槽机制来处理了,下面附上一段代码(处理的业务是登陆界面登陆跳转新界面窗口,供参考)
  1. #登录

  2. def loginAndBackRes(userId, userPw):
  3.     if(len(userId)==6):
  4.         user = mySql.query('SELECT * FROM manager WHERE id=%s and password=%s',(userId, userPw))
  5.         if(len(user)!=0):
  6.             loginView.destroy()#窗口销毁内置函数
  7.             MainView.managerIntf()#qml中的自制接口函数供后台调用
  8.             MainView.show()#窗口展示内置函数
  9.         else:
  10.             loginView.loginIntf()#qml中的自制接口函数供后台调用
  11.     elif(len(userId)==19):
  12.         user = mySql.query('SELECT * FROM user_base NATURAL JOIN user_detail WHERE id=%s and password=%s', (userId, userPw))
  13.         if (len(user)!=0):
  14.             if(user[0]['status']==1):
  15.                 loginView.loginIntf()
  16.             else:
  17.                 loginView.destroy()
  18.                 print(userId)
  19.                 print(user[0]['surplus'])
  20.                 MainView.userIntf(userId,user[0]['surplus'])
  21.                 MainView.show()
  22.         else:
  23.             loginView.loginIntf()
复制代码

还是建议你用第一种方式吧   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 06:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表