- '''.format(self.thread.sr_pkg_version(), self.thread.sr_lib_version()))
-
- QtGui.QMessageBox.about(self, 'About sigrok-meter', text)
+ app = QtGui.QApplication([])
- @QtCore.Slot(str)
- def error(self, msg):
- '''Error handler for the sampling thread.'''
- QtGui.QMessageBox.critical(self, 'Error', msg)
- self.close()
+ try:
+ import sigrok.core as sr
+ except Exception as e:
+ QtGui.QMessageBox.critical(None, 'Error starting sigrok-meter',
+ 'Unable to use the sigrok Python bindings:\n{}.'.format(e))
+ sys.exit(1)
- @QtCore.Slot(object, int, int)
- def modelRowsInserted(self, parent, start, end):
- '''Resizes the list view to the size of the content.'''
+ # Initialize modules that need a QApplication to exist.
+ import settings
+ settings.init()
+ import icons
+ icons.load_icons()
- rows = self.model.rowCount()
- dh = self.delegate.sizeHint().height()
- self.listView.setMinimumHeight(dh * rows)
+ context = sr.Context_create()
-if __name__ == '__main__':
- thread = SamplingThread(args['drivers'], args['loglevel'])
+ if args.loglevel != None:
+ try:
+ loglevel = sr.LogLevel.get(args.loglevel)
+ settings.logging.level.setValue(loglevel)
+ except:
+ sys.exit('Error: invalid log level.')
- app = QtGui.QApplication([])
- s = SigrokMeter(thread)
+ import mainwindow
+ s = mainwindow.MainWindow(context, args.drivers)
s.show()
- r = app.exec_()
- thread.stop()
- sys.exit(r)
+ sys.exit(app.exec_())