- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 PyQt5 和 QtDesigner 开始一个新项目。首先,我只是复制了 PyQt4 中以前项目中的代码,并将其调整为 PyQt5 中的更改。因此,启动 Main Window
和更新应用程序的 Timer
的代码如下所示:
# ====Python=============================================================
# SticksNStones
# =======================================================================
import ...
FPS = 45
dt = 1000.0 / FPS
class SNSMainWindow(WindowBaseClass, Ui_Window):
def __init__(self, parent=None):
WindowBaseClass.__init__(self, parent)
Ui_Window.__init__(self)
self.setupUi(self)
self.paused = False
self.timer = None
self.init()
def init(self):
# Setup Display
self.display.setup()
# Setup timer
self.timer = QtCore.QTimer(self)
self.timer.timeout.connect(self.update_loop)
self.timer.start(self.dt)
def update_loop(self):
if not self.paused:
self.display.update(dt)
else:
pass
# ==================================
# Start Application
# ==================================
_dialog = None
def start_sns():
global _dialog
# Start App and frame
app = QtWidgets.QApplication(sys.argv)
_dialog = SNSMainWindow()
_dialog.show()
# Exit if window is closed
sys.exit(app.exec_())
if __name__ == "__main__":
start_sns()
但是一旦我启动应用程序,它就会在初始化后关闭。调试显示计时器处于事件状态,但从未调用 update_loop
。
我从中复制的 PyQt4 代码工作得很好,但我无法理解为什么它不起作用,因为我在网上找到的所有示例都具有相同的代码。
问题是:为什么应用程序会在启动时自行关闭?
问题不在于计时器,而在于自定义 .ui 的使用。如果我用
运行代码class SNSMainWindow(QtWidgets.QFrame):
def __init__(self, parent=None):
QtWidgets.QFrame.__init__(self, parent)
...
一个窗口打开,它一直打开直到我关闭它。但是准系统
ui_path = os.path.dirname(os.path.abspath(__file__)) + "/ui/sns_main.ui"
Ui_Window, WindowBaseClass = uic.loadUiType(ui_path)
class SNSMainWindow(WindowBaseClass, Ui_Window):
def __init__(self, parent=None):
WindowBaseClass.__init__(self, parent)
Ui_Window.__init__(self)
self.setupUi(self)
# ==================================
if __name__ == "__main__":
# Start App and frame
app = QtWidgets.QApplication(sys.argv)
_dialog = SNSMainWindow()
_dialog.show()
# Exit if window is closed
sys.exit(app.exec_())
显示后几毫秒内就消失了。然后,在 PyQt4 中使用自定义小部件也保持打开状态。我添加了 uic.load
部分,它运行得很好。转换为 PyQt5 时我遗漏了什么吗?
我在自定义显示类中找到了问题的解决方案。在 paintEvent
的情况下,显示器会尝试获取(尚未)未定义的属性。但是,窗口并没有引发未定义属性的异常,而是关闭了。
在初始化小部件时定义属性解决了这个问题。这让我一直想知道,为什么在这种情况下没有引发异常,因为小部件显然试图调用一些未定义的属性。一个简单的
AttributeError: 'NoneType' object has no attribute 'xxx'
就够了。
最佳答案
我会尝试更改一些行,首先尝试将 app
定义更改为
app = QtGui.QApplication(sys.argv)
然后移除Ui_Window
init并将其设置为self.ui = Ui_Window()
class SNSMainWindow(WindowBaseClass):
def __init__(self, parent=None):
WindowBaseClass.__init__(self, parent)
self.ui = Ui_Window()
self.ui.setupUi(self)
self.paused = False
self.timer = None
self.init()
关于python - MainWindow 初始化后关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38561760/
我是 Spring 新手,这就是我想要做的事情: 我正在使用一个基于 Maven 的库,它有自己的 Spring 上下文和 Autowiring 字段。 它的bean配置文件是src/test/res
我在我的测试脚本中有以下列表初始化: newSequenceCore=["ls", "ns", "*", "cm", "*", "ov", "ov", "ov", "ov", "kd"] (代表要在控
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Class construction with initial values 当我查看 http://en.
我得到了成员变量“objectCount”的限定错误。编译器还返回“ISO C++ 禁止非常量静态成员的类内初始化”。这是主类: #include #include "Tree.h" using n
我有如下所示的a.h class A { public: void doSomething()=0; }; 然后我有如下所示的b.h #include "a.h" class b: publi
我需要解析 Firebase DataSnapshot (一个 JSON 对象)转换成一个数据类,其属性包括 enum 和 list。所以我更喜欢通过传递 DataSnapshot 来手动解析它进入二
我使用 JQuery 一段时间了,我总是使用以下代码来初始化我的 javascript: $(document).ready( function() { // Initalisation logic
这里是 Objective-C 菜鸟。 为什么会这样: NSString *myString = [NSString alloc]; [myString initWithFormat:@"%f", s
我无法让核心数据支持的 NSArrayController 在我的代码中正常工作。下面是我的代码: pageArrayController = [[NSArrayController alloc] i
我对这一切都很陌生,并且无法将其安装到我的后端代码中。它去哪里?在我的页脚下面有我所有的 JS? 比如,这是什么意思: Popup initialization code should be exec
这可能是一个简单的问题,但是嘿,我是初学者。 所以我创建了一个程序来计算一些东西,它目前正在控制台中运行。我决定向其中添加一个用户界面,因此我使用 NetBeans IDE 中的内置功能创建了一个 J
我有 2 个 Controller ,TEST1Controller 和 TEST2Controller 在TEST2Controller中,我有一个initialize()函数设置属性值。 如果我尝
据我所知, dependentObservable 在声明时会进行计算。但如果某些值尚不存在怎么办? 例如: var viewModel ={}; var dependentObservable1 =
我正在阅读 POODR 这本书,它使用旧语法进行默认值初始化。我想用新语法实现相同的功能。 class Gear attr_reader :chainring, :cog, :wheel de
我按照 polymer 教程的说明进行操作: https://www.polymer-project.org/3.0/start/install-3-0 (我跳过了可选部分) 但是,在我执行命令“po
很抱歉问到一个非常新手的Kotlin问题,但是我正在努力理解与构造函数和初始化有关的一些东西。 我有这个类和构造函数: class TestCaseBuilder constructor(
假设我们有一个包含 30 列和 30 行的网格。 生命游戏规则简而言之: 一个小区有八个相邻小区 当一个细胞拥有三个存活的相邻细胞时,该细胞就会存活 如果一个细胞恰好有两个或三个活的相邻细胞,那么它就
我是 MQTT 和 Android 开放附件“AOA” 的新手。在阅读教程时,我意识到,在尝试写入 ByteArrayOutputStream 类型的变量之前,应该写入 0 或 0x00首先到该变量。
我有 2 个 Controller ,TEST1Controller 和 TEST2Controller 在TEST2Controller中,我有一个initialize()函数设置属性值。 如果我尝
我有一个inotify /内核问题。我正在使用“inotify” Python项目进行观察,但是,我的问题仍然是固有的关于inotify内核实现的核心。 Python inotify项目处理递归ino
我是一名优秀的程序员,十分优秀!