import sys import time from PyQt5.QtCore import * from PyQt5.QtCore import QTime from PyQt5.QtGui import * from PyQt5.QtWidgets import QApplication, QDialog, QTextBrowser, QLineEdit, \ QVBoxLayout, QHBoxLayout, QGridLayout, QFileDialog from PyQt5.QtWidgets import QLabel from PyQt5.QtWidgets import QPushButton from PyQt5.QtWidgets import QSpacerItem ''' FileChooser = build_subclass('FileChooser', widget_pack.FileChooserPayload) MultiFileChooser = build_subclass('MultiFileChooser', widget_pack.MultiFileSaverPayload) DirChooser = build_subclass('DirChooser', widget_pack.DirChooserPayload) FileSaver = build_subclass('FileSaver', widget_pack.FileSaverPayload) DateChooser = build_subclass('DateChooser', widget_pack.DateChooserPayload) TextField = build_subclass('TextField', widget_pack.TextInputPayload) Textarea = build_subclass('TextField', widget_pack.TextAreaPayload) CommandField = build_subclass('CommandField', widget_pack.TextInputPayload(no_quoting=True)) Dropdown = build_subclass('Dropdown', widget_pack.DropdownPayload) Counter = build_subclass('Counter', widget_pack.CounterPayload) MultiDirChooser = build_subclass('MultiDirChooser', widget_pack.MultiDirChooserPayload) ''' class Thing(object): def get_value(self): pass def set_value(self): pass class FileChooser(object): def __init__(self): self.textfield = QLineEdit() self.button = QPushButton() layout = QHBoxLayout() layout.addWidget() class Container(object): def __init__(self, label, help_text): row1 = QGridLayout() row1.setColumnMinimumWidth(0, 1) row1.setColumnMinimumWidth(1, 1) row1.addWidget(QLabel('{}'.format(label)), 0, 0) row1.addWidget(QLabel(help_text, wordWrap=True), 1, 0) # row1.addWidget(self.lineedit, 2, 0) class Form(QDialog): def doSomething(self, e): print(e) def __init__(self, parent=None): super(Form, self).__init__(parent) self.browser = QTextBrowser() self.lineedit = QLineEdit('Type an expression') self.lineedit.selectAll() self.lineedit.dropEvent.connect(self.doSomething) layout = QVBoxLayout() layout.addWidget(self.browser) row1 = QGridLayout() row1.setColumnMinimumWidth(0, 1) row1.setColumnMinimumWidth(1, 1) row1.addWidget(QLabel('Filename is'), 0,0) row1.addWidget(QLabel('hello I am a really long ttle and I have lots of words will I wrap my text? Find out next!!!', wordWrap=True), 1,0) row1.addWidget(self.lineedit, 2,0) btn = QPushButton('Open') btn.clicked.connect(self.showDialog) row1.addWidget(QLabel('Shorter'), 0, 1) # _layout2.addWidget(QSpacerItem()) row1.addWidget(btn, 2, 1) row1.setColumnStretch(0, 1) row1.setColumnStretch(1, 1) print(row1.columnStretch(0)) print(row1.columnStretch(1)) layout.addLayout(row1) self.setLayout(layout) self.lineedit.setFocus() self.lineedit.returnPressed.connect(self.updateUi) self.setWindowTitle('Calculate') def updateUi(self): try: text = self.lineedit.text() self.browser.append("%s = %s" % (text, eval(text))) except: self.browser.append( "%s is invalid!" % text ) def showDialog(self): x = QFileDialog.getExistingDirectory(self, 'Open file') print(x) app = QApplication(sys.argv) form = Form() form.show() app.exec_()