Python中的GUI窗口(PyQT)立即闪烁和关闭?

时间:2016-01-28 01:10:57

标签: python pyqt

我是PyQT的新手,我刚开始通过这段视频了解它:https://www.youtube.com/watch?v=JBME1ZyHiP8

当我在Ubuntu 14.04上运行代码时

CREATE PROCEDURE userInfo(
            in uID int, 
            out fullname varchar(50), 
            out NumOrders int(11), 
            out DVDCount int(11), out VehicleCount int(11))
BEGIN
SELECT concat(firstname, ' ', lastname) INTO fullname 
FROM users WHERE userid = uID;

SELECT occupation FROM occupation 
JOIN users ON users.occupationid = occupation.occupationid 
WHERE userid = uID; // this query

SELECT count(*) INTO NumOrders FROM orderitem
JOIN orders ON orders.orderid = orderitem.orderid
JOIN users ON orders.userid = users.userid
WHERE users.userid = uID;

SELECT count(*) INTO DVDCount FROM userDVD WHERE userid = uID;

SELECT count(*) INTO VehicleCount FROM userVehicle WHERE userid = uID;
END;

窗口装箱只是闪烁并关闭。我如何获得窗口 留下来让我可以与它互动? Youtube视频中的代码 上面在Windows平台上演示了它。我是否必须附加任何特定于我的代码的Ubuntu?

1 个答案:

答案 0 :(得分:2)

您没有运行该应用,请将此行添加到结尾:

sys.exit(app.exec_())

来自relevant documentation

  

int QApplication.exec_()

     

进入主事件循环并等待直到调用exit(),然后返回设置为exit()的值(如果通过quit()调用exit(),则返回0)。

     

必须调用此函数才能启动事件处理。主事件循环从窗口系统接收事件并将这些事件分派给应用程序窗口小部件。

     

通常,在调用exec()之前不能进行任何用户交互。作为一种特殊情况,可以在调用exec()之前使用像QMessageBox这样的模态小部件,因为模态小部件调用exec()来启动本地事件循环。