D K*_*D K 6 python tkinter pyqt
也许我跳进了最后,但我会试一试.
以下是Tkinter的一些有用功能:
Tkinter Canvas小部件是面向对象的绘图画布.绘图的元素本质上是小部件,因为它们可以被移动,修改和绑定到事件.
Tkinter使用绑定来触发回调.该事件以字符串形式传递.可以使用自定义事件轻松创建event_generate.
Tkinter有这种after方法,它等待指定的时间而不冻结GUI.
Tkinter有预定义的字体,如TkDefaultFont颜色和颜色systemButtonFace,这取决于系统.
我的问题是:
这些功能的pyQt等价物(特别是粗体)是什么?
如何将窗口小部件的元素(例如,仅限检查按钮的标签)"绑定"到事件?
在 Qt 和 PyQt 中,事件被称为信号,您可以使用插槽绑定到它们(此处的文档)。一般来说,你所做的就是用@装饰器定义一个插槽。
class WindowImpl (QtGui.QMainWindow, Ui_TremorMain, Ui_Graphs):\n def __init__ (self, buffer, parent = None, configuration = None):\n # do some initialisation here (not GUI setup however)\n\n @QtCore.pyqtSlot(int, name="on_confSelectorCombo_currentIndexChanged")\n def confChanged (self, newConf):\n # do some stuff here to handle the event\nRun Code Online (Sandbox Code Playgroud)\n\ncurrentIndexChanged上述内容将在名为 的对象的事件上触发confSelectorCombo。该设置confSelectorCombo是在 GUI 构建器中完成的,或者Qt Creator诺基亚决定这样称呼它。这确实是您想要用来开始的。这里有关于使用 Qt Creator 的教程。显然,您需要浏览文档并查看哪些小部件发出哪些信号。
至于字体,我只知道文档上的内容:
\n\nIf you have not set a font for your application then the default font on your\nmachine will be used, and the default font can be different on different\nmachines. On Windows the default Windows font is used, on X11 the one in qtrc\ncan be used. If a default font can\xe2\x80\x99t be found, then a font specified by Qt\nwill be used.\nRun Code Online (Sandbox Code Playgroud)\n\n和QStyleSheet充当更改小部件外观( QStylesheet、QStyleQStyle )的代理。
至于让应用程序等待我发现这个
\n\nQTime dieTime = QTime::currentTime().addSecs(2);\nwhile( QTime::currentTime() < dieTime ):\n QCoreApplication::processEvents(QEventLoop::AllEvents, 100);\nRun Code Online (Sandbox Code Playgroud)\n\n还有QThread.sleep()( docs ),具体取决于你想要什么样的效果。可能还值得查看Qt 文档中的线程支持
总的来说,在查找有关如何在 PyQt 中执行操作的信息时,我发现查看 Qt 文档然后用 Python 编写这些内容非常有用。十有八九这个方法有效。另一方面,PySide 可能也值得研究,它是另一个 python Qt 库。我之前没有使用过自己,因为它之前一直在工作中,但我注意到他们已经发布了 1.0.6 版本。
\n\n更新\n只是为了在下面重申 Luke Woodward,您可以使用QGraphicsScene和QGraphicsView以面向对象的方式渲染内容。它QGraphicsScene实际上并不渲染任何东西,它只是一个场景图,QGraphicsView然后用于渲染场景图的内容。对于低级绘图,还有\xc2\xb4s -这里QPainter有一个基本绘图教程。还值得一看的是所有图形项目的基础和QGraphicsItem
includes defining the item\'s geometry, collision detection, its painting \nimplementation and item interaction through its event handlers\nRun Code Online (Sandbox Code Playgroud)\n\n文档在这里。它Context2D提供了一个 HTML 画布(如果我没有记错的话,是使用了 WebKit)。画布本身仅具有更改的插槽,但是您放置在画布上的任何对象都将/可以具有更多插槽。Context2D和Context2DCanvas 这里有一个相当完整的教程。要解释为什么有这么多不同的渲染方式,您必须询问其他人。我的两点意见是,这与 Qt 应该在任何地方都能工作这一事实有关,而 Trolltech 和后来的诺基亚希望提供很多选择。幸运的是,文档非常好。
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |