所以,当我运行fbs run时,应用程序运行得非常完美。但是,一旦我运行fbs freeze并打开创建的.exe文件,windows命令提示符就会打开,然后关闭一些东西(我无法检索日志)。这也发生在通过fbs installer生成的安装程序安装的应用程序中。运行fbs freeze --debug不会显示出任何奇怪的东西。
我的应用程序应该通过chromewebdriver和用PyQt5创建的GUI窗口打开chrome。
我运行python3.6.7并拥有正确的PyQt5版本(5.9.2)。
浏览器编辑( webdriver.Chrome("src/main/resources/windows/chromedriver") =)是导致问题的原因之一。我将chromedriver.exe存储在src/main/resources/windows/
这是我的代码:
from fbs_runtime.application_context.PyQt5 import ApplicationContext
from PyQt5.QtWidgets import QMainWindow, QWidget, QLayout,QGridLayout, QLabel, QTabWidget, QSizePolicy
from PyQt5 import QtCore
from selenium import webdriver
browser = webdriver.Chrome("src/main/resources/windows/chromedriver")
class MainWindow(QMainWindow):
allItems = {"type":[], "name":[], "size":[], "colour":[]}
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
self.main_widget = QTabWidget(self)
self.main_widget.setSizePolicy(QSizePolicy.Preferred,
QSizePolicy.Ignored)
#Main Window
self.itemWidget = QWidget(self)
self.main_layout = QGridLayout(self.itemWidget)
self.main_layout.sizeConstraint = QLayout.SetDefaultConstraint
nameLabel = QLabel("Name")
self.main_layout.addWidget(nameLabel, 0, 0)
self.nameInput = QLineEdit()
self.main_layout.addWidget(self.nameInput, 0, 1)
self.main_widget.addTab(self.itemWidget, "Main")
self.setCentralWidget(self.main_widget)
if __name__ == '__main__':
appctxt = ApplicationContext()
window = MainWindow() #QMainWindow object
window.resize(600, 300)
window.show()
exit_code = appctxt.app.exec_()
sys.exit(exit_code)如果你需要更多细节,请告诉我。
你们中的一些人知道是什么导致了这一切吗?
发布于 2019-11-05 21:10:04
好吧,我修好了我的“窃听器”。结果表明,ApplicationContext.get_resource()不访问位于src\main\resources的资源文件,而是访问src\main\resources\base。知道了这一点,我就能够组织我的项目,记住这一点。希望这能对以后的人有所帮助。
https://stackoverflow.com/questions/58698873
复制相似问题