0
2 개의 탭이있는 GUI 응용 프로그램을 만들기 위해 PYQT5를 사용하고 있습니다. 하나의 탭 ('tImp')에서 파일 브라우저를 사용하고 싶습니다. 다른 탭 (tRec)에서 푸시 버튼을 갖고 싶습니다. 내가 탭에서보고 싶은 것을 코딩했는데 스크립트를 실행할 때 탭이 표시되지만 내용 (파일 브라우저 및 푸시 버튼)은 표시되지 않습니다.python pyqt5 탭 내용이 표시되지 않습니다.
import sys from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QWidget, QAction, QTabWidget,QVBoxLayout, QInputDialog, QLineEdit, QFileDialog from PyQt5.QtGui import QIcon
class App(QMainWindow):
def __init__(self):
super().__init__()
self.title = 'Budget'
self.left = 10
self.top = 40
self.width = 1200
self.height = 600
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.table_widget = MyTableWidget(self)
self.setCentralWidget(self.table_widget)
self.show()
class MyTableWidget(QWidget):
def __init__(self, parent):
super(QWidget, self).__init__(parent)
self.layout = QVBoxLayout(self)
# Initialize tab screen
self.tabs = QTabWidget()
self.tImp = QWidget()
self.tRec = QWidget()
self.tabs.resize(1200,600)
# Create Import tab
def tImp():
self.tImp.layout = QVBoxLayout(self)
self.tImp.layout.addWidget(self.openFileNamesDialog)
self.tImp.setLayout(self.tImp.layout)
# Create file browser Widget
def openFileNamesDialog(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
files, _ = QFileDialog.getOpenFileNames(self,"QFileDialog.getOpenFileNames()", "","All Files (*);;Format Files (*.csv)", options=options)
if files:
print(files)
# Create Reconcile tab
def tRec():
self.tRec.layout = QVBoxLayout(self)
self.pushButton1 = QPushButton("Commit")
self.tRec.layout.addWidget(self.pushButton1)
self.tRec.setLayout(self.tRec.layout)
# Add tabs
self.tabs.addTab(self.tImp,"Import")
self.tabs.addTab(self.tRec,"Reconcile")
# Add tabs to widget
self.layout.addWidget(self.tabs)
self.setLayout(self.layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
어떤 도움을 주시면 감사하겠습니다 : 아래는 내가 지금까지 가지고있는 것입니다.
감사합니다. 죄송합니다, 저는 OO 프로그래밍에 조금 익숙합니다 (아마도 말할 수 있듯이). 나는 "def tImp"를 만들었고 "#Add tabs"섹션에서 "self.tabs.addTab (self. ** tImp **,"Import ")"라는 함수가 함수를 호출했을 것이라고 생각했습니다. "tRec()"을 "# 위젯에 탭 추가"섹션 끝에 추가했는데 작동하는 것 같습니다. (비록 내 tImp()가 다른 이유로 인해서 문제를 일으키고는 있지만 ... – SRev
'self.tImp'는 여러분이 만든'tImp' 함수와 같지 않습니다. 이전 줄에서는'self.tImp = QWidget()'을했다. 그것이 바로'self.timmp'입니다. 'tImp'는 절대로 호출되지 않는 함수를 담고있는 지역 변수입니다. – BrenBarn