"""
Inherited from the definition imported from Qt Designer / pyuic construct ThetaMat.ui
"""
def __init__(self):
self.ui = Ui_mainWindow()
self.ui.setupUi(self)
self.ui.statusbar.showMessage('Welcome')
self.setWindowState(QtCore.Qt.WindowMaximized)
self.ui.mdiArea.show()
self.setCentralWidget(self.ui.mdiArea)
# remember to setup slots / signals here
self.ui.actionAbout_ThetaMat.triggered.connect(self.myAbout)
self.ui.actionView_Current_List.triggered.connect(self.InvGrid)
def InvGrid(self):
# see if we already exist (prevents duplicate windows)
test
= self.
ui.
mdiArea.
findChild(QtGui.
QWidget,
'InvList')
if test:
print 'Raising existing Inventory List'
test.setFocus()
test.setWindowState(test.windowState() | QtCore.Qt.WindowMaximized)
else:
print 'Creating Inventory List'
# create a child window for the grid (need the 'X' in the corner!)
tableWidget = QtGui.QMdiSubWindow(self.ui.mdiArea)
tableWidget.setWindowTitle('Current Inventory')
# put a qtableview in the child window
invTable.setSortingEnabled(True)
invTable.setMinimumSize(800, 500)
invTable.setMaximumSize(16777215, 16777215)
invTable.setColumnWidth(0,80)
invTable.setColumnWidth(1,250)
invTable.setColumnWidth(2,40)
invTable.setColumnWidth(3,80)
invTable.setColumnWidth(4,45)
invTable.setColumnWidth(5,80)
invTable.setColumnWidth(6,80)
invTable.setColumnWidth(7,45)
# populate the grid
logindb = pyodbc.connect('DSN=MyDSN;PWD=MyPw')
invcursor = logindb.cursor()
invcursor.execute('select count (*) from Inventory')
row = invcursor.fetchone()
totalrows = row[0]
print "Total rows in inventory = %i" %(int(totalrows))
invcursor.execute('select * from Inventory;')
currenttablerow = 0
for record in invcursor:
invModel.
setItem(currenttablerow,
0, QtGui.
QStandardItem(record
[0])) invModel.
setItem(currenttablerow,
1, QtGui.
QStandardItem(record
[1])) invModel.
setItem(currenttablerow,
2, QtGui.
QStandardItem(str
(record
[2]))) invModel.
setItem(currenttablerow,
3, QtGui.
QStandardItem(record
[3])) invModel.
setItem(currenttablerow,
4, QtGui.
QStandardItem(str
(record
[4]))) invModel.
setItem(currenttablerow,
5, QtGui.
QStandardItem(record
[5])) invModel.
setItem(currenttablerow,
6, QtGui.
QStandardItem(record
[6])) invModel.
setItem(currenttablerow,
7, QtGui.
QStandardItem(record
[7])) currenttablerow += 1
invModel.setHeaderData(0, QtCore.Qt.Horizontal, 'Category', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(1, QtCore.Qt.Horizontal, 'Item Description', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(2, QtCore.Qt.Horizontal, 'Tray #', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(3, QtCore.Qt.Horizontal, 'Parent Item', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(4, QtCore.Qt.Horizontal, 'Weight', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(5, QtCore.Qt.Horizontal, 'Dimension', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(6, QtCore.Qt.Horizontal, 'Detail #', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(7, QtCore.Qt.Horizontal, 'Material', role=QtCore.Qt.DisplayRole)
invHeader = invTable.horizontalHeader()
self.ui.statusbar.showMessage('Displaying Active Inventory')
invTable.setModel(invModel)
invHeader.setStretchLastSection(True)
invTable.updateGeometry()
invTable.showMaximized()
# update the list
tableWidget.setObjectName('InvList')
#show the widget
tableWidget.setWindowState(tableWidget.windowState() | QtCore.Qt.WindowMaximized)
tableWidget.showMaximized()
class MainWin(QtGui.QMainWindow):
"""
Inherited from the definition imported from Qt Designer / pyuic construct ThetaMat.ui
"""
def __init__(self):
QtGui.QDialog.__init__(self)
self.ui = Ui_mainWindow()
self.ui.setupUi(self)
self.ui.statusbar.showMessage('Welcome')
self.setWindowState(QtCore.Qt.WindowMaximized)
self.ui.mdiArea.show()
self.setCentralWidget(self.ui.mdiArea)
# remember to setup slots / signals here
self.ui.actionAbout_ThetaMat.triggered.connect(self.myAbout)
self.ui.actionView_Current_List.triggered.connect(self.InvGrid)
def InvGrid(self):
# see if we already exist (prevents duplicate windows)
test = self.ui.mdiArea.findChild(QtGui.QWidget, 'InvList')
if test:
print 'Raising existing Inventory List'
test.setFocus()
test.setWindowState(test.windowState() | QtCore.Qt.WindowMaximized)
else:
print 'Creating Inventory List'
# create a child window for the grid (need the 'X' in the corner!)
tableWidget = QtGui.QMdiSubWindow(self.ui.mdiArea)
tableWidget.setSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Maximum)
tableWidget.setWindowTitle('Current Inventory')
# put a qtableview in the child window
invTable = QtGui.QTableView(tableWidget)
invTable.setSortingEnabled(True)
invTable.setMinimumSize(800, 500)
invTable.setMaximumSize(16777215, 16777215)
invTable.setColumnWidth(0,80)
invTable.setColumnWidth(1,250)
invTable.setColumnWidth(2,40)
invTable.setColumnWidth(3,80)
invTable.setColumnWidth(4,45)
invTable.setColumnWidth(5,80)
invTable.setColumnWidth(6,80)
invTable.setColumnWidth(7,45)
invTable.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
# populate the grid
logindb = pyodbc.connect('DSN=MyDSN;PWD=MyPw')
invcursor = logindb.cursor()
invcursor.execute('select count (*) from Inventory')
row = invcursor.fetchone()
totalrows = row[0]
print "Total rows in inventory = %i" %(int(totalrows))
invcursor.execute('select * from Inventory;')
currenttablerow = 0
invModel = QtGui.QStandardItemModel(totalrows,8)
for record in invcursor:
invModel.setItem(currenttablerow, 0, QtGui.QStandardItem(record[0]))
invModel.setItem(currenttablerow, 1, QtGui.QStandardItem(record[1]))
invModel.setItem(currenttablerow, 2, QtGui.QStandardItem(str(record[2])))
invModel.setItem(currenttablerow, 3, QtGui.QStandardItem(record[3]))
invModel.setItem(currenttablerow, 4, QtGui.QStandardItem(str(record[4])))
invModel.setItem(currenttablerow, 5, QtGui.QStandardItem(record[5]))
invModel.setItem(currenttablerow, 6, QtGui.QStandardItem(record[6]))
invModel.setItem(currenttablerow, 7, QtGui.QStandardItem(record[7]))
currenttablerow += 1
invModel.setHeaderData(0, QtCore.Qt.Horizontal, 'Category', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(1, QtCore.Qt.Horizontal, 'Item Description', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(2, QtCore.Qt.Horizontal, 'Tray #', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(3, QtCore.Qt.Horizontal, 'Parent Item', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(4, QtCore.Qt.Horizontal, 'Weight', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(5, QtCore.Qt.Horizontal, 'Dimension', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(6, QtCore.Qt.Horizontal, 'Detail #', role=QtCore.Qt.DisplayRole)
invModel.setHeaderData(7, QtCore.Qt.Horizontal, 'Material', role=QtCore.Qt.DisplayRole)
invHeader = invTable.horizontalHeader()
self.ui.statusbar.showMessage('Displaying Active Inventory')
invTable.setModel(invModel)
invHeader.ResizeMode(QtGui.QHeaderView.Stretch)
invHeader.setStretchLastSection(True)
invTable.updateGeometry()
invTable.showMaximized()
# update the list
tableWidget.setObjectName('InvList')
#show the widget
tableWidget.setWindowState(tableWidget.windowState() | QtCore.Qt.WindowMaximized)
tableWidget.showMaximized()
To copy to clipboard, switch view to plain text mode
Bookmarks