- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我尝试构建一个应用程序并努力研究如何将一个操作连接到另一个对话框窗口。我搜索了它,但只找到了一个不是用 Qt Designer 构建的窗口的解决方案。我用 Qt Designer 设计了它,并将 .ui 编译为 .py 格式。
这是我的第一个窗口:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'home.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from howto import Ui_HowToDialog
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_HomeWindow(object):
def setupUi(self, HomeWindow):
HomeWindow.setObjectName(_fromUtf8("HomeWindow"))
HomeWindow.resize(1106, 259)
font = QtGui.QFont()
font.setFamily(_fromUtf8("Consolas"))
HomeWindow.setFont(font)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/resources/plottwist.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
HomeWindow.setWindowIcon(icon)
HomeWindow.setLayoutDirection(QtCore.Qt.LeftToRight)
self.centralwidget = QtGui.QWidget(HomeWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.homeBrowser = QtGui.QTextBrowser(self.centralwidget)
font = QtGui.QFont()
font.setFamily(_fromUtf8("Consolas"))
self.homeBrowser.setFont(font)
self.homeBrowser.setObjectName(_fromUtf8("homeBrowser"))
self.horizontalLayout.addWidget(self.homeBrowser)
HomeWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(HomeWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
HomeWindow.setStatusBar(self.statusbar)
self.homeToolbar = QtGui.QToolBar(HomeWindow)
font = QtGui.QFont()
font.setFamily(_fromUtf8("Consolas"))
font.setPointSize(10)
self.homeToolbar.setFont(font)
self.homeToolbar.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.homeToolbar.setLayoutDirection(QtCore.Qt.LeftToRight)
self.homeToolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
self.homeToolbar.setObjectName(_fromUtf8("homeToolbar"))
HomeWindow.addToolBar(QtCore.Qt.LeftToolBarArea, self.homeToolbar)
self.actionOpenDataset = QtGui.QAction(HomeWindow)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/resources/dataset.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionOpenDataset.setIcon(icon1)
self.actionOpenDataset.setObjectName(_fromUtf8("actionOpenDataset"))
self.actionHowTo = QtGui.QAction(HomeWindow)
self.actionHowTo.triggered.connect(self.showHowto)
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/resources/howto.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionHowTo.setIcon(icon2)
self.actionHowTo.setObjectName(_fromUtf8("actionHowTo"))
self.actionAbout = QtGui.QAction(HomeWindow)
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap(_fromUtf8(":/resources/about.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionAbout.setIcon(icon3)
self.actionAbout.setObjectName(_fromUtf8("actionAbout"))
self.homeToolbar.addAction(self.actionOpenDataset)
self.homeToolbar.addAction(self.actionHowTo)
self.homeToolbar.addAction(self.actionAbout)
self.retranslateUi(HomeWindow)
QtCore.QMetaObject.connectSlotsByName(HomeWindow)
def retranslateUi(self, HomeWindow):
HomeWindow.setWindowTitle(_translate("HomeWindow", "Plot Twist", None))
self.homeBrowser.setHtml(_translate("HomeWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Consolas\'; font-size:7.5pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:14pt; font-weight:600;\">Data Visualization is as important as it sounds, you can visualize your data with this app just by inserting any dataset you want. For more detailed instructions, simply go to How To icon.</span></p>\n"
"<p align=\"justify\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:14pt; font-weight:600;\"><br /></p>\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt; font-weight:600;\">With Plot Twist, you can:</span></p>\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt; font-weight:600;\">- Look inside your dataset</span></p>\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt; font-weight:600;\">- Visualize it by choosing any possible diagrams of any columns</span></p>\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt; font-weight:600;\">- Find out specific calculation of any column</span></p></body></html>", None))
self.homeToolbar.setWindowTitle(_translate("HomeWindow", "toolBar", None))
self.actionOpenDataset.setText(_translate("HomeWindow", "Open Dataset", None))
self.actionOpenDataset.setStatusTip(_translate("HomeWindow", "Open dataset to visualize it.", None))
self.actionOpenDataset.setShortcut(_translate("HomeWindow", "Ctrl+O", None))
self.actionHowTo.setText(_translate("HomeWindow", "How To", None))
self.actionHowTo.setToolTip(_translate("HomeWindow", "How To Do This?", None))
self.actionHowTo.setStatusTip(_translate("HomeWindow", "Instructions on how this app works.", None))
self.actionHowTo.setShortcut(_translate("HomeWindow", "F1", None))
self.actionAbout.setText(_translate("HomeWindow", "About", None))
self.actionAbout.setToolTip(_translate("HomeWindow", "About", None))
self.actionAbout.setStatusTip(_translate("HomeWindow", "Description and message by creator.", None))
self.actionAbout.setShortcut(_translate("HomeWindow", "F2", None))
def showHowto(self):
HowToDialog = QtGui.QDialog()
hui = Ui_HowToDialog()
hui.setupUi(HowToDialog)
HowToDialog.show()
sys.exit(app.exec_())
import resources_rc
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
HomeWindow = QtGui.QMainWindow()
ui = Ui_HomeWindow()
ui.setupUi(HomeWindow)
HomeWindow.show()
sys.exit(app.exec_())
这是我试图弹出的对话框。它应该在工具栏上的图标被触发时显示 HowTo 对话框。
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'howto.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_HowToDialog(object):
def setupUi(self, HowToDialog):
HowToDialog.setObjectName(_fromUtf8("HowToDialog"))
HowToDialog.resize(585, 242)
font = QtGui.QFont()
font.setFamily(_fromUtf8("Consolas"))
HowToDialog.setFont(font)
HowToDialog.setAcceptDrops(False)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/resources/howto.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
HowToDialog.setWindowIcon(icon)
self.horizontalLayout = QtGui.QHBoxLayout(HowToDialog)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.howtoBrowser = QtGui.QTextBrowser(HowToDialog)
self.howtoBrowser.setObjectName(_fromUtf8("howtoBrowser"))
self.horizontalLayout.addWidget(self.howtoBrowser)
self.retranslateUi(HowToDialog)
QtCore.QMetaObject.connectSlotsByName(HowToDialog)
def retranslateUi(self, HowToDialog):
HowToDialog.setWindowTitle(_translate("HowToDialog", "How To Do This?", None))
self.howtoBrowser.setHtml(_translate("HowToDialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Consolas\'; font-size:7.5pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">How to insert your dataset:</span></p>\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">1. Click </span><span style=\" font-size:12pt; font-weight:600;\">Open Dataset </span><span style=\" font-size:12pt;\">icon.</span></p>\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">2. Click </span><span style=\" font-size:12pt; font-weight:600;\">Browse </span><span style=\" font-size:12pt;\">and select your dataset.</span></p>\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">3. Note that the dataset has to be a .csv file.</span></p>\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">4. Click </span><span style=\" font-size:12pt; font-weight:600;\">Insert File </span><span style=\" font-size:12pt;\">button.</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">5. Your dataset visualization window will appear, and you can start to visualize it.</span></p>\n"
"<p align=\"justify\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;\"><br /></p>\n"
"<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">Happy visualizing :)</span></p></body></html>", None))
import resources_rc
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
HowToDialog = QtGui.QDialog()
ui = Ui_HowToDialog()
ui.setupUi(HowToDialog)
HowToDialog.show()
sys.exit(app.exec_())
如您所见,这是我定义的用于显示第二个窗口的函数:
def showHowto(self):
HowToDialog = QtGui.QDialog()
hui = Ui_HowToDialog()
hui.setupUi(HowToDialog)
HowToDialog.show()
sys.exit(app.exec_())
我用 self.actionHowTo.triggered.connect(self.showHowto)
将它与操作工具栏连接起来。
当我运行它时,它显示QCoreApplication::exec: The event loop already running
。有人可以告诉我出了什么问题和解决方案吗?先谢谢了!
最佳答案
我在开始使用 pyqt 时遇到了类似的问题。您应该像这样为对话框窗口创建另一个类:
#!python3
'''docs'''
import sys
from PyQt4.QtGui import *
from _apps.PyUi import DialogUi
class DialogApp(QDialog, DialogUi.Ui_DialogApp):
"""Dialog class"""
def __init__(self, parent=None):
super(self.__class__, self).__init__(parent)
self.setupUi(self)
def main(self):
app = QApplication(sys.argv)
form = DialogApp()
form.show()
app.exec_()
if __name__ == '__main__':
main()
我包含的主要内容是为了方便测试...下一部分在主窗口中只是与操作连接的插槽:
def openDialog(self):
self.dialog= DialogApp(self)
self.dialog.show()
您需要注意的部分是谁是对话框的父级,如果 None
是父级,就像在我的示例中一样,对话框将在任务栏上获得一个单独的选项卡,并且可以在您单击 action
时实例化多次,假设对话框本身是无模式的。如果将 mainwindow
(self
) 传递给对话框,在大多数情况下推荐使用对话框窗口,主窗口将是父窗口,默认情况下对话框将居中当它出现时在 main 上。
此外,据我所知,您还需要并且只能激活一个 QApplication
,所有显示的窗口和底层方法和函数都经过这个初始的 QApplication
。
关于python - 在已编译的 PyQt4 Qt Designer 上显示来自操作工具栏的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43277308/
两者有什么区别? v7-21 工具栏中没有的所有功能都包含在工具栏中吗?使用 v7-21 工具栏代替工具栏有哪些限制? 最佳答案 如果您查看 Toolbar 的文档和 AppCompat Toolba
如何使用 jQuery 进行可拖动的 Tinymce 工具栏? 最佳答案 在你的 tinyMCE init 方法中试试这个 tinyMCE.init({ // ... handle_event_cal
是否可以有一个多行的 ExtJsToolBar?我想要第一行的几个控件和第二行的 3 个 ExtJsButtons。 工具栏是面板的顶部工具栏。 最佳答案 不确定早期版本,但从 ExtJS 4.0 开
环境: iOS 6/7、Xcode 5 中的自动布局。 我知道要调整 NavBar 以适应状态栏,我将 NavBar 的背景图像设置为 64 位高(引用:WWDC 2013 Video Lecture
有没有办法获取整个 OS X 中使用的默认 NSButton 来导航窗口的内容?我所说的按钮显示在 Finder、系统偏好设置、Safari、Mac App Store、游戏中心等中。 虽然我可以使用
我没有使用 Windows 上 gvim 中的菜单和工具栏;我可以隐藏它们吗? 这将为文本区域提供更多空间。 最佳答案 使用guioptions设置(缩写为go)。 :set guioptions -
我使用 jQuery 为tinymce 创建了一个外部 float 工具栏。 tinyMCE.init({ ... theme_advanced_toolbar_location :
使用我的 TitleAreaDialog 是否可以在按钮下方的底部添加一个区域或一个栏。当操作发生时,可以向用户显示一条消息。 这是我所指的例子 最佳答案 据我所知,这对于 JFace Dialog
我已经创建了 JToolBar (Java Swing)。我在包含 JToolBar 的框架上设置了背景图像。我希望我的 JToolBar 是透明的,以便保持在框架上的图像应该是可见的。我正在使用 s
如何检查键盘何时完全显示以及何时像这样折叠?也许我可以检查它的高度? 我暂时检查了 notification 中的 userInfo,但没有发现对解决我的问题有用。 最佳答案 只需订阅通知: Noti
我想使用 jQuery UI 创建一个带标题的工具栏。 到目前为止,我有: HTML: go to beginning Submit CSS: #toolbar
这是我的 list 文件: 这是我的 Activity 布局: 这是我
如何去掉 android View 顶部的白框?我在我的代码中看不到我调用创建工具栏的东西的任何地方,我也没有自己编写代码。它也存在于 View 之上,而不是其中。我猜 xml 文件的设计 View
有人知道怎么做吗? 最佳答案 使用带有 alignParentBottom="true"的 LinearLayout 像这样: 我没有尝试编译,您可能需要修正一些拼写错误,但这是一个
我想以编程方式更改 Android 工具栏中导航图标(屏幕截图中的黑色圆圈)的高度和宽度。有什么办法吗?这不是工具栏 Logo 。我无法在 Styles xml 中更新工具栏主题,因为我希望它是动态的
我目前正在开发一个实现 Appcompat 工具栏的应用程序。现在我的问题是,如果我选择一个 Light Actionbar 作为基础,菜单是白色的,标题是黑色的。我希望两者都是白色的。如果我更改为
是否可以在工具栏中同时显示主页图标和返回图标?1)是否可以更改后退按钮图标和主页图标的显示顺序。目前它首先显示箭头按钮,然后显示 Logo (主页按钮) 2) 第二个要求是在单击主页图标时清除 Act
我想要一个双倍高度的操作栏(如 Material 指南示例中所示),但标题中(可能)有 2 行文本。我使用的标题是动态的,取决于页面中显示的项目。如果只有一行,它应该看起来像一个普通的操作栏,如果有
目前正在努力调整我的工具栏的布局。 我有两个按钮。一个左对齐,另一个右对齐。文本(应用程序标题)需要位于两个按钮的中央。 例子:[按钮 1] [文本] [按钮 2] 我的问题。文本未居中对齐。 它需要
我有一个包含 CardView 的 RecyclerView。 我想为每个 CardView 添加一个工具栏,使其看起来和行为都像主工具栏: [图标] [标题] ......... [按钮] [按钮]
我是一名优秀的程序员,十分优秀!