def testSetModel(self): model = VirtualList() model._getItemCalled = False table = QTableView() table.setModel(model) table.show() self.assertFalse(model._getItemCalled)
def test(): class XTest( XBase ): def __init__( self ): XBase.__init__( self ) self.name = "" self.vorname = "" self.alter = 0 self.haarfarbe = "" self.schuhgroesse = 0 self.bemerkung = "" x1 = XTest() x1.name = "Kendel" x1.vorname = "Martin" x1.alter = 66 x1.haarfarbe = "grau" x1.schuhgroesse = 44 x1.bemerkung = "Das ist alles \nein riesengroßer Irrtum" x2 = XTest() x2.name = "Haaretz" x2.vorname = "Yosh" x2.alter = 56 x2.haarfarbe = "schwarz" x2.schuhgroesse = 42 tm = DefaultIccTableModel( (x1, x2 ) ) tm.setSortable( True ) tm.setKeyHeaderMappings( { "Nachname": "name", "Vorname": "vorname", "Alter": "alter", "Bemerkung": "bemerkung" } ) tm.setNumColumnsIndexes( (2,) ) from PySide2.QtWidgets import QApplication app = QApplication() tv = QTableView( ) tv.setModel( tm ) tv.setAlternatingRowColors( True ) tv.setSortingEnabled( True ) tv.resizeColumnsToContents() tv.resizeRowsToContents() tm.layoutChanged.connect( tv.resizeRowsToContents ) ## <======== WICHTIG bei mehrzeiligem Text in einer Zelle! tv.show() app.exec_()
def using_model(): app = QApplication() numbers = ['One', 'Two', 'Three', 'Four', 'Five'] model = QStringListModel() model.setStringList(numbers) list = QListView() list.setModel(model) firstTableView = QTableView() secondTableView = QTableView() firstTableView.setModel(model) secondTableView.setModel(model) secondTableView.setSelectionModel(firstTableView.selectionModel()) list.show() firstTableView.show() secondTableView.show() app.exec_()
# Create the Qt Application app = QApplication(sys.argv) #get all ip adresses in the lan host_list = get_neighbors() print(host_list) col_getter = [ {"Name": "Dev", "Getter": lambda aHostItem: aHostItem["dev"]}, {"Name": "Ip", "Getter": lambda aHostItem: aHostItem["ip"]}, {"Name": "Mac", "Getter": lambda aHostItem: aHostItem["mac"]}, ] host_table = QTableView() host_model = HostModel(host_list, col_getter, host_table) host_table.setModel(host_model) host_table.show() # Run the main Qt loop sys.exit(app.exec_())
"Getter": lambda aHostItem: aHostItem["dev"] }, { "Name": "Ip", "Getter": lambda aHostItem: aHostItem["ip"] }, { "Name": "Mac", "Getter": lambda aHostItem: aHostItem["mac"] }, ] host_table = QTableView() host_model = HostModel(host_list, col_getter, host_table) host_table.setModel(host_model) host_table.show() # Run the main Qt loop sys.exit(app.exec_()) #class Form(QDialog): # # def __init__(self, parent=None): # super(Form, self).__init__(parent) # # Create widgets # self.edit = QLineEdit("Write my name here") # self.button = QPushButton("Show Greetings") # # Create layout and add widgets # layout = QVBoxLayout() # layout.addWidget(self.edit) # layout.addWidget(self.button)
class MyMainWindow(QMainWindow, Ui_PySide2_Chroma_Eload_GUI.Ui_MainWindow): def __init__(self, parent=None): super(MyMainWindow, self).__init__(parent) self.setupUi(self) self.commandLinkButton.clicked.connect(self.pushButton_Click) self.pushButton.clicked.connect(self.detectGPIB) self.pushButton_2.clicked.connect(self.openDf_csv) self.pushButton_3.clicked.connect(self.reflash_filename) ##to do , select checkbox then goto next step ##self.checkBox_1.checked.connect(self.setNextOn) # set window title self.setWindowTitle("PyEfficiency 2022.03.09") self.setFixedSize(720, 800) self.checkBox.setChecked(False) #set DC source On self.pushButton_4.clicked.connect(self.dcsourceOn) #set DC source Off self.pushButton_5.clicked.connect(self.dcsourceOff) self.show() self.time = str(datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")) self.filename = self.time + ".csv" #set defalut file name self.init_save_filename = "PyEff_" self.lineEdit.setText(self.init_save_filename) self.df = pd.DataFrame() #set "open reuslt" button isn't work in GUI init. self.pushButton_2.setEnabled(False) #set comboBox value self.comboBox.setCurrentText("7") #self.comboBox.setEnabled(True) self.comboBox_2.setCurrentText("9") #self.comboBox_2.setEnabled(True) self.comboBox_3.setCurrentText("5") def openDf_csv(self): self.filename = self.lineEdit.text() self.df.to_csv(self.filename) os.system("start excel.exe %s" % self.filename) def pushButton_Click(self): self.reflash_filename() if (self.checkBox_1.isChecked() or self.checkBox_3.isChecked() or self.checkBox_5.isChecked() or self.checkBox_7.isChecked() or self.checkBox_9.isChecked() or self.checkBox_51.isChecked()) == 0: QMessageBox.about(self, "Warning", "please checked Eload channel in the GUI") else: loadlist = gpib.ComboEload() Iout_max = int(self.lineEdit_2.text()) Iout_step = int(self.lineEdit_3.text()) Delay = int(self.lineEdit_4.text()) gpibaddr1 = int(self.comboBox.currentText()) gpibaddr2 = int(self.comboBox_2.currentText()) if self.checkBox_1.isChecked(): load1 = gpib.ChromaEload(gpibaddr1, 1, int(self.lineEdit_L1.text()), 0) loadlist.addEload(load1) if self.checkBox_3.isChecked(): load3 = gpib.ChromaEload(gpibaddr1, 3, int(self.lineEdit_L3.text()), 0) loadlist.addEload(load3) if self.checkBox_5.isChecked(): load5 = gpib.ChromaEload(gpibaddr1, 5, int(self.lineEdit_L5.text()), 0) loadlist.addEload(load5) if self.checkBox_7.isChecked(): load7 = gpib.ChromaEload(gpibaddr1, 7, int(self.lineEdit_L7.text()), 0) loadlist.addEload(load7) if self.checkBox_9.isChecked(): load9 = gpib.ChromaEload(gpibaddr1, 9, int(self.lineEdit_L9.text()), 0) loadlist.addEload(load9) if self.checkBox_51.isChecked(): load51 = gpib.ChromaEload(gpibaddr2, 1, int(self.lineEdit_L51.text()), 0) loadlist.addEload(load51) #df=measure.measureEfficiency(loadlist,Iout_max,Iout_step,Delay) if self.checkBox.isChecked(): df = measure.measureEfficiency(loadlist, Iout_max, Iout_step, Delay, 1) else: df = measure.measureEfficiency(loadlist, Iout_max, Iout_step, Delay, 0) #self.textBrowser.setText("Efficiency finish") self.showdf(df) self.df = df self.pushButton_2.setEnabled(True) self.df.to_csv(self.lineEdit.text()) def detectGPIB(self): df = gpib.scanGPIB() self.showdf(df) def showdf(self, df): model = PdQtClass.pandasModel(df) view = QTableView() view.setModel(model) view.resize(800, 600) self.w = QTableView() self.w.setModel(model) self.w.resize(480, 320) self.w.show() # for test button def pushbutton3(self): self.pushButton_2.setEnabled(True) self.filename = self.lineEdit.text() print(self.time) print(self.filename) self.reflash_filename() self.pushButton_4.setStyleSheet('background-color: Red') def reflash_filename(self): self.time = str(datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")) self.filename = self.init_save_filename self.lineEdit.setText(self.filename + self.lineEdit_5.text() + "Vin_Imax" + self.lineEdit_2.text() + "A_" + self.time + ".csv") #set DC source def dcsourceOn(self): voltage = float(self.lineEdit_5.text()) current = int(self.lineEdit_6.text()) gpibaddr = int(self.comboBox_3.currentText()) self.push_msg_to_GUI( f'set DC source to {voltage}V, {current}A and turn on') dcsource = gpib.AgilentDCsource(gpibaddr, voltage, current) dcsource.On() self.pushButton_4.setStyleSheet('background-color: Red') None def dcsourceOff(self): voltage = float(self.lineEdit_5.text()) current = int(self.lineEdit_6.text()) gpibaddr = int(self.comboBox_3.currentText()) dcsource = gpib.AgilentDCsource(gpibaddr, voltage, current) dcsource.Off() self.push_msg_to_GUI("Turn off DC source") self.pushButton_4.setStyleSheet('background-color: None') ## to do , select checkbox then goto next step def setNextOn(self): None def push_msg_to_GUI(self, msg=""): if True: self.textEdit.append(str(msg)) self.textEdit.append("") else: pass
## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ## $QT_END_LICENSE$ ## ############################################################################# import sys from PySide2.QtCore import Qt from PySide2.QtSql import QSqlQueryModel from PySide2.QtWidgets import QTableView, QApplication import createdb from bookdelegate import BookDelegate if __name__ == "__main__": app = QApplication() createdb.init_db() model = QSqlQueryModel() model.setQuery("select title, author, genre, year, rating from books") table = QTableView() table.setModel(model) table.setItemDelegate(BookDelegate()) table.resize(800, 600) table.show() sys.exit(app.exec_())
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ## $QT_END_LICENSE$ ## ############################################################################# import sys from PySide2.QtSql import QSqlQueryModel from PySide2.QtWidgets import QTableView, QApplication import createdb if __name__ == "__main__": app = QApplication() createdb.init_db() model = QSqlQueryModel() model.setQuery("select * from books") table_view = QTableView() table_view.setModel(model) table_view.resize(800, 600) table_view.show() sys.exit(app.exec_())
if __name__ == '__main__': import sys import numpy as np from PySide2.QtWidgets import QApplication, QTableView, QVBoxLayout # User specifies grains.out file if (len(sys.argv) < 2): print() print('Load grains.out file and display as table') print('Usage: python fit_grains_resuls_model.py <path-to-grains.out>') print() sys.exit(-1) # print(sys.argv) app = QApplication(sys.argv) data = np.loadtxt(sys.argv[1]) # print(data) model = FitGrainsResultsModel(data) view = QTableView() view.verticalHeader().hide() view.setModel(model) view.resizeColumnToContents(0) view.resize(960, 320) view.show() app.exec_()
return False def setModelData(self, editor, model, index): ''' The user wanted to change the old state in the opposite. ''' model.setData(index, 1 if int(index.data()) == 0 else 0, QtCore.Qt.EditRole) if __name__ == '__main__': import sys app = QApplication(sys.argv) model = QStandardItemModel(4, 3) tableView = QTableView() tableView.setModel(model) delegate = CheckBoxDelegate(None) tableView.setItemDelegateForColumn(1, delegate) for row in range(4): for column in range(3): index = model.index(row, column, QModelIndex()) model.setData(index, 1) tableView.setWindowTitle("Check Box Delegate") tableView.show() sys.exit(app.exec_())