FBS打包的应用打开命令提示符然后关闭

时间:2019-11-04 18:05:40

标签: pyqt5 fbs

因此,当我运行fbs run时,应用程序运行完美。但是,一旦我运行fbs freeze并打开创建的.exe文件,Windows命令提示符就会打开,然后执行一些操作然后关闭(我无法检索日志)。通过通过fbs installer生成的安装程序安装的应用程序也会发生这种情况。运行fbs freeze --debug不会显示任何异常。

我的应用程序应该通过chromewebdriver和使用PyQt5创建的GUI窗口打开chrome。

我运行python 3.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)

如果您需要更多详细信息,请告诉我。

你们中的一些人不知道是什么原因造成的吗?

1 个答案:

答案 0 :(得分:0)

好的,我修复了我的“错误”。事实证明,ApplicationContext.get_resource()不会访问src \ main \ resources中的资源文件,而是访问src \ main \ resources \ base。知道这一点后,我能够牢记这一点来组织我的项目。希望以后可以对您有所帮助。