当我点击btn_choose_threshold按钮时,我想从主用户界面访问另一个用户界面,但当我点击此按钮时,第二个用户界面根本不显示,主用户界面也消失了
有代码可以理解更多。我在www.example.com工作code1.py
mainwindow.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(1404, 860)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(1150, 860))
MainWindow.setMaximumSize(QtCore.QSize(1500, 860))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
MainWindow.setFont(font)
MainWindow.setFocusPolicy(QtCore.Qt.NoFocus)
icon = QtGui.QIcon.fromTheme("TimeSires")
MainWindow.setWindowIcon(icon)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lab_browse = QtWidgets.QLabel(self.centralwidget)
self.lab_browse.setGeometry(QtCore.QRect(10, 10, 151, 21))
font = QtGui.QFont()
font.setFamily("Ubuntu Condensed")
font.setPointSize(13)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.lab_browse.setFont(font)
self.lab_browse.setWordWrap(False)
self.lab_browse.setObjectName("lab_browse")
self.btn_Browse = QtWidgets.QPushButton(self.centralwidget)
self.btn_Browse.setGeometry(QtCore.QRect(170, 10, 71, 20))
font = QtGui.QFont()
font.setFamily("Ubuntu Condensed")
font.setPointSize(13)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.btn_Browse.setFont(font)
self.btn_Browse.setObjectName("btn_Browse")
self.lab_data_det = QtWidgets.QLabel(self.centralwidget)
self.lab_data_det.setGeometry(QtCore.QRect(890, 10, 111, 16))
font = QtGui.QFont()
font.setFamily("Ubuntu Condensed")
font.setPointSize(13)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.lab_data_det.setFont(font)
self.lab_data_det.setObjectName("lab_data_det")
self.table_data = QtWidgets.QTableView(self.centralwidget)
self.table_data.setGeometry(QtCore.QRect(510, 40, 981, 371))
self.table_data.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.table_data.setObjectName("table_data")
self.lab_data_vis = QtWidgets.QLabel(self.centralwidget)
self.lab_data_vis.setGeometry(QtCore.QRect(300, 0, 231, 31))
font = QtGui.QFont()
font.setFamily("Ubuntu Condensed")
font.setPointSize(14)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.lab_data_vis.setFont(font)
self.lab_data_vis.setObjectName("lab_data_vis")
self.line = QtWidgets.QFrame(self.centralwidget)
self.line.setGeometry(QtCore.QRect(0, 490, 1681, 20))
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.line_2 = QtWidgets.QFrame(self.centralwidget)
self.line_2.setGeometry(QtCore.QRect(230, 500, 16, 301))
self.line_2.setFrameShape(QtWidgets.QFrame.VLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.line_4 = QtWidgets.QFrame(self.centralwidget)
self.line_4.setGeometry(QtCore.QRect(500, 500, 16, 301))
self.line_4.setFrameShape(QtWidgets.QFrame.VLine)
self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_4.setObjectName("line_4")
self.line_7 = QtWidgets.QFrame(self.centralwidget)
self.line_7.setGeometry(QtCore.QRect(790, 500, 16, 301))
self.line_7.setFrameShape(QtWidgets.QFrame.VLine)
self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_7.setObjectName("line_7")
self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
self.layoutWidget.setGeometry(QtCore.QRect(20, 510, 202, 285))
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_5.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_5.setSpacing(15)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.label_jac = QtWidgets.QLabel(self.layoutWidget)
self.label_jac.setMinimumSize(QtCore.QSize(100, 30))
self.label_jac.setMaximumSize(QtCore.QSize(16777215, 20))
font = QtGui.QFont()
font.setFamily("Comic Sans MS")
font.setPointSize(14)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.label_jac.setFont(font)
self.label_jac.setAlignment(QtCore.Qt.AlignCenter)
self.label_jac.setObjectName("label_jac")
self.verticalLayout_5.addWidget(self.label_jac)
self.table_jac = QtWidgets.QTableView(self.layoutWidget)
self.table_jac.setObjectName("table_jac")
self.verticalLayout_5.addWidget(self.table_jac)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.verticalLayout_5.addLayout(self.horizontalLayout_2)
self.btn_jac = QtWidgets.QPushButton(self.layoutWidget)
self.btn_jac.setObjectName("btn_jac")
self.verticalLayout_5.addWidget(self.btn_jac)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.verticalLayout_5.addLayout(self.horizontalLayout)
self.line_3 = QtWidgets.QFrame(self.centralwidget)
self.line_3.setGeometry(QtCore.QRect(0, 790, 1681, 20))
self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_3.setObjectName("line_3")
self.layoutWidget_2 = QtWidgets.QWidget(self.centralwidget)
self.layoutWidget_2.setGeometry(QtCore.QRect(560, 510, 201, 281))
self.layoutWidget_2.setObjectName("layoutWidget_2")
self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.layoutWidget_2)
self.verticalLayout_8.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_8.setSpacing(15)
self.verticalLayout_8.setObjectName("verticalLayout_8")
self.lab_group2 = QtWidgets.QLabel(self.layoutWidget_2)
self.lab_group2.setMinimumSize(QtCore.QSize(100, 30))
self.lab_group2.setMaximumSize(QtCore.QSize(16777215, 20))
font = QtGui.QFont()
font.setFamily("Comic Sans MS")
font.setPointSize(14)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.lab_group2.setFont(font)
self.lab_group2.setAlignment(QtCore.Qt.AlignCenter)
self.lab_group2.setObjectName("lab_group2")
self.verticalLayout_8.addWidget(self.lab_group2)
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.list_group2 = QtWidgets.QListView(self.layoutWidget_2)
self.list_group2.setObjectName("list_group2")
self.horizontalLayout_6.addWidget(self.list_group2)
self.verticalLayout_8.addLayout(self.horizontalLayout_6)
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.btn_group2 = QtWidgets.QPushButton(self.layoutWidget_2)
self.btn_group2.setObjectName("btn_group2")
self.horizontalLayout_7.addWidget(self.btn_group2)
self.verticalLayout_8.addLayout(self.horizontalLayout_7)
self.line_5 = QtWidgets.QFrame(self.centralwidget)
self.line_5.setGeometry(QtCore.QRect(1050, 500, 16, 301))
self.line_5.setFrameShape(QtWidgets.QFrame.VLine)
self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_5.setObjectName("line_5")
self.line_6 = QtWidgets.QFrame(self.centralwidget)
self.line_6.setGeometry(QtCore.QRect(240, 0, 16, 421))
self.line_6.setFrameShape(QtWidgets.QFrame.VLine)
self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_6.setObjectName("line_6")
self.line_9 = QtWidgets.QFrame(self.centralwidget)
self.line_9.setGeometry(QtCore.QRect(0, 410, 1681, 20))
self.line_9.setFrameShape(QtWidgets.QFrame.HLine)
self.line_9.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_9.setObjectName("line_9")
self.layoutWidget1 = QtWidgets.QWidget(self.centralwidget)
self.layoutWidget1.setGeometry(QtCore.QRect(270, 510, 193, 281))
self.layoutWidget1.setObjectName("layoutWidget1")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.layoutWidget1)
self.verticalLayout_4.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_4.setSpacing(15)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.lab_group1 = QtWidgets.QLabel(self.layoutWidget1)
self.lab_group1.setMinimumSize(QtCore.QSize(0, 30))
self.lab_group1.setMaximumSize(QtCore.QSize(16777215, 30))
font = QtGui.QFont()
font.setFamily("Comic Sans MS")
font.setPointSize(14)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.lab_group1.setFont(font)
self.lab_group1.setAlignment(QtCore.Qt.AlignCenter)
self.lab_group1.setObjectName("lab_group1")
self.verticalLayout_4.addWidget(self.lab_group1)
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.list_group1 = QtWidgets.QListView(self.layoutWidget1)
self.list_group1.setObjectName("list_group1")
self.horizontalLayout_3.addWidget(self.list_group1)
self.verticalLayout.addLayout(self.horizontalLayout_3)
self.btn_group1 = QtWidgets.QPushButton(self.layoutWidget1)
self.btn_group1.setObjectName("btn_group1")
self.verticalLayout.addWidget(self.btn_group1)
self.verticalLayout_4.addLayout(self.verticalLayout)
self.layoutWidget2 = QtWidgets.QWidget(self.centralwidget)
self.layoutWidget2.setGeometry(QtCore.QRect(260, 40, 241, 361))
self.layoutWidget2.setObjectName("layoutWidget2")
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.layoutWidget2)
self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.btn_choose_threshold = QtWidgets.QPushButton(self.layoutWidget2)
self.btn_choose_threshold.setObjectName("btn_choose_threshold")
self.verticalLayout_6.addWidget(self.btn_choose_threshold)
self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
self.horizontalLayout_11.setObjectName("horizontalLayout_11")
self.btn_bar = QtWidgets.QPushButton(self.layoutWidget2)
self.btn_bar.setObjectName("btn_bar")
self.horizontalLayout_11.addWidget(self.btn_bar)
self.btn_cloud = QtWidgets.QPushButton(self.layoutWidget2)
self.btn_cloud.setObjectName("btn_cloud")
self.horizontalLayout_11.addWidget(self.btn_cloud)
self.verticalLayout_6.addLayout(self.horizontalLayout_11)
self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
self.horizontalLayout_12.setObjectName("horizontalLayout_12")
self.btn_treemap = QtWidgets.QPushButton(self.layoutWidget2)
self.btn_treemap.setObjectName("btn_treemap")
self.horizontalLayout_12.addWidget(self.btn_treemap)
self.verticalLayout_6.addLayout(self.horizontalLayout_12)
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 1404, 21))
self.menuBar.setObjectName("menuBar")
MainWindow.setMenuBar(self.menuBar)
self.actionData_Visualisation = QtWidgets.QAction(MainWindow)
self.actionData_Visualisation.setObjectName("actionData_Visualisation")
self.actionTrain_Data = QtWidgets.QAction(MainWindow)
self.actionTrain_Data.setObjectName("actionTrain_Data")
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.lab_browse.setText(_translate("MainWindow", "Select Data File"))
self.btn_Browse.setText(_translate("MainWindow", "Browse"))
self.lab_data_det.setText(_translate("MainWindow", "Data Details"))
self.lab_data_vis.setText(_translate("MainWindow", "Data Base Visualisation "))
self.label_jac.setText(_translate("MainWindow", "Jaccard Distance"))
self.btn_jac.setText(_translate("MainWindow", "Show Jaccard "))
self.lab_group2.setText(_translate("MainWindow", "Group 2"))
self.btn_group2.setText(_translate("MainWindow", "Show Group 2"))
self.lab_group1.setText(_translate("MainWindow", "Group 1"))
self.btn_group1.setText(_translate("MainWindow", "Show Group 1"))
self.btn_choose_threshold.setText(_translate("MainWindow", "Choose Threshold"))
self.btn_bar.setText(_translate("MainWindow", "Bar Chart"))
self.btn_cloud.setText(_translate("MainWindow", "Word Cloud"))
self.btn_treemap.setText(_translate("MainWindow", "Treemap"))
self.actionData_Visualisation.setText(_translate("MainWindow", "Data Visualisation"))
self.actionTrain_Data.setText(_translate("MainWindow", "Train Data"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
threshold.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Threshold(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(303, 188)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lab_threshold = QtWidgets.QLabel(self.centralwidget)
self.lab_threshold.setGeometry(QtCore.QRect(50, 40, 150, 40))
self.lab_threshold.setMaximumSize(QtCore.QSize(150, 40))
font = QtGui.QFont()
font.setFamily("Ubuntu Condensed")
font.setPointSize(13)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.lab_threshold.setFont(font)
self.lab_threshold.setWordWrap(False)
self.lab_threshold.setObjectName("lab_threshold")
self.edit_threshold = QtWidgets.QLineEdit(self.centralwidget)
self.edit_threshold.setGeometry(QtCore.QRect(160, 40, 50, 40))
self.edit_threshold.setMinimumSize(QtCore.QSize(20, 20))
self.edit_threshold.setMaximumSize(QtCore.QSize(50, 40))
self.edit_threshold.setBaseSize(QtCore.QSize(20, 20))
font = QtGui.QFont()
font.setFamily("Comic Sans MS")
self.edit_threshold.setFont(font)
self.edit_threshold.setAlignment(QtCore.Qt.AlignCenter)
self.edit_threshold.setReadOnly(True)
self.edit_threshold.setObjectName("edit_threshold")
self.btn_ok = QtWidgets.QPushButton(self.centralwidget)
self.btn_ok.setGeometry(QtCore.QRect(60, 100, 151, 20))
self.btn_ok.setObjectName("btn_ok")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 303, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.lab_threshold.setText(_translate("MainWindow", "Threshold"))
self.btn_ok.setText(_translate("MainWindow", "OK"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_Threshold()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
code1.py
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog
from PyQt5.uic import loadUi
from PyQt5 import QtWidgets, uic
import pandas as pd
from PyQt5.QtCore import QAbstractTableModel, Qt
from PyQt5.QtWidgets import QScrollArea
from PyQt5.QtWidgets import QInputDialog, QLineEdit, QDialog, QWidget, QLabel, QVBoxLayout
class PandasModel(QAbstractTableModel):
def __init__(self, data):
QAbstractTableModel.__init__(self)
self._data = data
def data(self, index, role):
if index.isValid():
if role == Qt.DisplayRole:
return str(self._data.iloc[index.row(), index.column()])
return None
def rowCount(self, parent=None):
return len(self._data.index)
def columnCount(self, parent=None):
return len(self._data.columns)
def headerData(self, section, orientation, role=Qt.DisplayRole):
if role == Qt.DisplayRole:
if orientation == Qt.Horizontal:
return str(self._data.columns[section])
if orientation == Qt.Vertical:
return str(self._data.index[section])
return None
class ThresholdWindow(QDialog):#
def __init__(self):
super(ThresholdWindow, self).__init__()
loadUi("threshold.ui", self)
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
loadUi("Mainwindow.ui", self)
self.btn_Browse.clicked.connect(self.browse_file)
self.btn_choose_threshold.clicked.connect(self.open_threshold_window)
def browse_file(self):
file_dialog = QFileDialog()
filepath, _ = file_dialog.getOpenFileName(self, 'Select Excel File', '', 'Excel files (*.xlsx; *.xls)')
if filepath:
df = pd.read_excel(filepath)
model = PandasModel(df)
self.table_data.setModel(model)
def open_threshold_window(self):
print("Opening Threshold Window")
self.threshold_window = ThresholdWindow()
self.threshold_window.show()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
1条答案
按热度按时间kknvjkwl1#
我不知道这个指南对你有什么帮助,但也许在第47行code1.py不能加载mainwindow.ui并说没有这样的文件。