def createMailModel(parent): model = QStandardItemModel(0, 3, parent) model.setHeaderData(SUBJECT, Qt.Horizontal, "Subject") model.setHeaderData(SENDER, Qt.Horizontal, "Sender") model.setHeaderData(DATE, Qt.Horizontal, "Date") addMail(model, "Happy New Year!", "Grace K. <*****@*****.**>", QDateTime(QDate(2006, 12, 31), QTime(17, 3))) addMail(model, "Radically new concept", "Grace K. <*****@*****.**>", QDateTime(QDate(2006, 12, 22), QTime(9, 44))) addMail(model, "Accounts", "*****@*****.**", QDateTime(QDate(2006, 12, 31), QTime(12, 50))) addMail(model, "Expenses", "Joe Bloggs <*****@*****.**>", QDateTime(QDate(2006, 12, 25), QTime(11, 39))) addMail(model, "Re: Expenses", "Andy <*****@*****.**>", QDateTime(QDate(2007, 1, 2), QTime(16, 5))) addMail(model, "Re: Accounts", "Joe Bloggs <*****@*****.**>", QDateTime(QDate(2007, 1, 3), QTime(14, 18))) addMail(model, "Re: Accounts", "Andy <*****@*****.**>", QDateTime(QDate(2007, 1, 3), QTime(14, 26))) addMail(model, "Sports", "Linda Smith <*****@*****.**>", QDateTime(QDate(2007, 1, 5), QTime(11, 33))) addMail(model, "AW: Sports", "Rolf Newschweinstein <*****@*****.**>", QDateTime(QDate(2007, 1, 5), QTime(12, 0))) addMail(model, "RE: Sports", "Petra Schmidt <*****@*****.**>", QDateTime(QDate(2007, 1, 5), QTime(12, 1))) return model
def initialize_code(self): self.cboPeriod.currentTextChanged.connect(self.selectPeriod) self.cboPeriod.setCurrentIndex(3) # This Week # self.cboPeriod.setCurrentIndex(5) # This Month self.listTimers.currentItemChanged.connect(self.selectTimer) self.listTimers.itemClicked.connect(self.selectTimer) self.listTimers.itemDoubleClicked.connect(self.startTimer) self.btnStart.hide() self.btnStart.clicked.connect(self.startTimer) self.btnAddLap.hide() self.btnAddLap.clicked.connect(self.addLap) self.btnDeleteTimer.setEnabled(0) self.btnDeleteTimer.clicked.connect(self.deleteTimer) self.btnDeleteTimer.setEnabled(False) self.btnPencil.clicked.connect(self.btnPencil_Clicked) self.btnEditLaps.clicked.connect(self.btnEditLaps_Clicked) today = datetime.today() yesterday = today - timedelta(days=1) self.dtFromFilter.setDateTime(QDateTime(yesterday.year, yesterday.month, yesterday.day, 0, 0, 0)) self.dtToFilter.setDateTime(QDateTime(today.year, today.month, today.day, 0, 0, 0)) # self.dtFromFilter.show() # self.dtToFilter.show() # Initialise Timer state: periodFilter = self.cboPeriod.currentText(); for timer in self.timers.timers: timer.set_period_filter(periodFilter) self.redraw_timers() # Populate Timers for the first time:
def getOptions(self) -> Tuple[List[QDateTime], bool, bool]: dates = list() byTime: bool = self.body.byTime.isChecked() byDate: bool = self.body.byDate.isChecked() for row in self.__layoutRows: date: QDate = self.body.gLayout.itemAtPosition(row, 0).widget().date() time: QTime = self.body.gLayout.itemAtPosition(row, 2).widget().time() if byDate and byTime: datetime = QDateTime(date, time, Qt.UTC) elif not byTime: # Date only datetime = QDateTime(date, self.DEFAULT_TIME, Qt.UTC) elif not byDate: # Time only datetime = QDateTime(self.DEFAULT_DATE, time, Qt.UTC) else: flogging.appLogger.error( 'Invalid byDate/byTime combination: {}, {}'.format( byDate, byTime)) raise ValueError( 'Unexpected error: unsupported datetime input arguments') dates.append(datetime) return dates, byDate, byTime
def testQDateTimeNull(self): '''QDataStream <<>> QDateTime - null''' self.stream << QDateTime() res = QDateTime() self.read_stream >> res self.assertEqual(res, QDateTime()) self.assertFalse(res.isValid()) self.assertTrue(res.isNull())
def connect(self): if self.checkbox.isChecked(): print("connecting " + self.ip) self.timer.start(sample_interval_secs * 1000) self.tti = ttiPsu(self.ip, self.channel) dtime = datetime.datetime.now() self.time.setText(dtime.strftime('%c')) #get data data = self.tti.GetData() data.print() self.name.setText(data.identity) self.target_voltage_input.setText("{0:.3f}".format( data.target_volts)) self.target_voltage_output.setText("setpoint: {0:.3f}".format( data.target_volts)) self.output_voltage.setText("{0:.3f}".format(data.out_volts)) self.current_limit_input.setText("{0}".format( int(data.target_amps * 1000))) self.current_limit_output.setText("setpoint: {0}".format( int(data.target_amps * 1000))) self.output_current.setText("{0}".format(int(data.out_amps * 1000))) isON = self.tti.getOutputIsEnabled() if data.is_enabled: self.switch_output.setText("Output is ON") else: self.switch_output.setText("Output is OFF") self.series_voltage.append( QDateTime().currentDateTime().toMSecsSinceEpoch(), data.out_volts) self.series_current.append( QDateTime().currentDateTime().toMSecsSinceEpoch(), data.out_amps * 1000) self.axisX.setMin(QDateTime().currentDateTime().addSecs(-60)) self.axisX.setMax(QDateTime().currentDateTime()) else: print("disconnecting...") self.timer.stop() self.tti.setLocal() del self.tti self.name.setText("") self.time.setText("") self.output_voltage.setText("") self.output_current.setText("") self.switch_output.setText("") print("disconnect successfully.")
def testQDateTimeValid(self): '''QDataStream <<>> QDateTime - valid''' time = QTime(23, 23, 23) date = QDate(2009, 1, 1) self.stream << QDateTime(date, time) res = QDateTime() self.read_stream >> res self.assertEqual(res, QDateTime(date, time)) self.assertTrue(res.isValid()) self.assertFalse(res.isNull())
def add_series(self, name, columns): self.series = QtCharts.QLineSeries() self.series.setName(name) for i in range(self.model.rowCount()): t = self.model.index(i, 0).data() date_fmt = "yyyy-MM-dd HH:mm:ss.zzz" x = QDateTime().fromString(t, date_fmt).toSecsSinceEpoch() y = float(self.model.index(i, 1).data()) if x > 0 and y > 0: self.series.append(x, y) self.chart.addSeries(self.series) self.axis_x = QtCharts.QDateTimeAxis() self.axis_x.setTickCount(10) self.axis_x.setFormat("dd.MM (h:mm)") self.axis_x.setTitleText("Date") self.chart.addAxis(self.axis_x, Qt.AlignBottom) self.series.attachAxis(self.axis_x) self.axis_y = QtCharts.QValueAxis() self.axis_y.setTickCount(10) self.axis_y.setLabelFormat("%.2f") self.axis_y.setTitleText("Magnitude") self.chart.addAxis(self.axis_y, Qt.AlignLeft) self.series.attachAxis(self.axis_y) self.model.color = "{}".format(self.series.pen().color().name()) print(self.model.color)
def transform_date(utc, timezone=None): utc_fmt = "yyyy-MM-ddTHH:mm:ss.zzzZ" new_date = QDateTime().fromString(utc, utc_fmt) if timezone: new_date.setTimeZone(timezone) return new_date
def __init__(self): QMainWindow.__init__(self) # 设置时间 self.__time = QDateTime() # 创建图形界面 self.__SetupUI() self.__ConfigureFileToolBar() self.__ConfigureTranslateToolBar() self.__ConfigureMainLayout() # 设置ComboBox的显示内容 self.__ConfigureComboBox() # 设置保存文件的信息 self.__currentPath = QDir.currentPath() self.__ConfigureSysIniFile() self.__ConfigureHistoryFile() salt = random.randint(1466000000, 1467000000) self.__salt = str(salt) self.__httpClient = None self.__statusBar.showMessage( self.__GetCurrentTime() + " - Please choose a file or enter data!", 2000) self.show()
def add_series( self, name, columns, chart ): #выходит add.series так написан что по Ох автоматически будет дата? """ Формирует название оси """ self.series = QtCharts.QLineSeries() self.series.setName(name) """ формирует 1 массив series из 2 столбцов, добавляя в него данные из Х и У """ for i in range(self.model.rowCount()): """ получение даты """ t = self.model.index(i, 0).data( ) #типа нулевой столбец(дата) и в нем по строкам будем переходить с помощью цикла этого date_fmt = "yyyy-MM-dd HH:mm:ss.zzz" #но вообще тут уже прописано как бы что в нулевом столбце будет дата #x = QDateTime().fromString(t, date_fmt).toSecsSinceEpoch() x = float(QDateTime().fromString(t, date_fmt).toMSecsSinceEpoch()) #x = QDateTime().fromString("2019-01-01 12:00:00.100", date_fmt).toMSecsSinceEpoch() # не работает: # QLineSeries.append(x, y) ждёт float-ов, а не QDateTime() # x = QDateTime().fromString(t, date_fmt) y = float(self.model.index(i, columns[1]).data()) # print(x, y) # потому что сложно рисовать график с минусовой осью ??? if x > 0 and y > 0: self.series.append(x, y) chart.addSeries(self.series) """ задание оси X """ #self.axis_x = QtCharts.QDateTimeAxis() self.axis_x = QtCharts.QValueAxis() """ Класс QDateTimeAxis добавляет даты и время к оси диаграммы. """ self.axis_x.setTickCount(6) """setTickCounе( int count ) устанавливает количество отметок на оси для подсчета, на оси Х будет 10 штрихов """ #self.axis_x.setFormat("dd.MM.yy hh:mm:ss") """ setFormat - задаёт формат вывод текстового представления значения. """ self.axis_x.setTitleText("Дата") chart.addAxis(self.axis_x, Qt.AlignBottom) """ Добавляет ось оси к диаграмме, выровненной, как указано выравниванием. """ self.series.attachAxis(self.axis_x) """ Возвращает, true если ось была успешно присоединена, false в противном случае. """ """ задание оси Y """ self.axis_y = QtCharts.QValueAxis() """ Класс QValueAxis добавляет значения к осям диаграммы. """ self.axis_y.setTickCount(6) """ Свойство setTickCount содержит количество отметок на оси. Это указывает, сколько линий сетки нарисовано на графике. """ self.axis_y.setLabelFormat("%.2f") """ Свойство setLabelFormat содержит формат метки оси. """ self.axis_y.setTitleText( name ) #изменила название оси, что ифами написать, как обратиться к имени той колонки которую я в параметры передаю? chart.addAxis(self.axis_y, Qt.AlignLeft) self.series.attachAxis(self.axis_y) """ получение цвета из QC hart для использования в QTableView, будет выделять столбец таблицы тем же цветом что и линия в диарамме!! """ self.model.color = "{}".format(self.series.pen().color().name())
def update_data(self): dtime = datetime.datetime.now() self.time.setText(dtime.strftime('%c')) data = self.tti.GetData() data.print() self.name.setText(data.identity) self.target_voltage_output.setText("setpoint: {0:.3f}".format( data.target_volts)) self.output_voltage.setText("{0:.3f}".format(data.out_volts)) self.current_limit_output.setText("setpoint: {0}".format( int(data.target_amps * 1000))) self.output_current.setText("{0}".format(int(data.out_amps * 1000))) self.series_voltage.append( QDateTime().currentDateTime().toMSecsSinceEpoch(), data.out_volts) self.series_current.append( QDateTime().currentDateTime().toMSecsSinceEpoch(), data.out_amps * 1000) self.axisX.setMin(QDateTime().currentDateTime().addSecs(-60)) self.axisX.setMax(QDateTime().currentDateTime())
def __init__(self, x, y, width, height, text): """ A Rectangle with some text in it :param text: str :param x: float :param y: float :param height: float :param width: float """ self.id = LaunchButton.ID LaunchButton.ID += 1 print("my self.id = ", str(self.id)) self.x = x self.y = y self.width = width self.height = height self.text = text # super(SelectFolderButton, self).__init__(self.x, self.y, self.width, self.height) QObject.__init__(self) QGraphicsRectItem.__init__(self, self.x, self.y, self.width, self.height) self.setAcceptHoverEvents(True) # self.text = HText("Select Folder", self.x + self.width - 20, self.y + height / 2, self, 45) # self.text = HText("Select Folder", self.x + 5, self.y + 5, self, 45) # simple state array, represented as a numpy array, 0 = False, 1 = True # [0] = ZIPPED, [1] = SENT, [2] = SUBMITTED, [3] = FINISHED, [4] = DELIVERED self.state = np.zeros(5) self.state[0] = 1 print(self.state.any()) # indexes = np.array(np.where(self.state == 1)) # indexes = list(np.where(self.state == 1)) indexes = np.where(self.state == 1) print("TYPE") print(type(indexes)) # indexes.append(3) print("index state = ", indexes) print("len = ", len(indexes)) print("state = \n", self.state) self.mpen = scene_objects.initialize_qpen(QColor(7, 133, 192), width=2) # main block color self.current_color = QColor(7, 133, 192) # self.current_color_1 = Qt.gray # self.current_color_2 = Qt.gray self.i = 0 self.qdate_time = QDateTime() print("################################################################################\n")
def toQtCookie(PyCookie): qc = QNetworkCookie(PyCookie.name, PyCookie.value) qc.setSecure(PyCookie.secure) if PyCookie.path_specified: qc.setPath(PyCookie.path) if PyCookie.domain != "": qc.setDomain(PyCookie.domain) if PyCookie.expires and PyCookie.expires != 0: t = QDateTime() t.setTime_t(PyCookie.expires) qc.setExpirationDate(t) # not yet handled(maybe less useful): # py cookie.rest / QNetworkCookie.setHttpOnly() return qc
def transform_date(utc, timezone=None): """значение timezone по умолчаннию=None, timezone-не обязательный параметр """ utc_fmt = "yyyy-MM-ddTHH:mm:ss.zzzZ" new_date = QDateTime().fromString(utc, utc_fmt) """ Класс QDateTime предоставляет функции даты и времени. Функция fromString () возвращает QDateTime , учитывая строку и формат даты, используемый для интерпретации даты в строке, ИЗ СТРОКИ ВОЗВРАЩАЕТ ДАТУ В ЧИСЛОВОМ ФОРМАТЕ """ if timezone: new_date.setTimeZone(timezone) """ setTimeZone Возвращает часовой пояс даты и времени, произведет преобразования с числом, добавив или отнимит какое число в зависимости от зоны """ return new_date """ возвращается модифицированная дата """
def testQDateTime6arg(self): dateTime = datetime.datetime(2010, 4, 23, 11, 14, 7) other = QDateTime(dateTime) otherDate = other.date() self.assertEqual(dateTime.year, otherDate.year()) self.assertEqual(dateTime.month, otherDate.month()) self.assertEqual(dateTime.day, otherDate.day()) otherTime = other.time() self.assertEqual(dateTime.hour, otherTime.hour()) self.assertEqual(dateTime.minute, otherTime.minute()) self.assertEqual(dateTime.second, otherTime.second()) self.assertEqual(dateTime.microsecond/1000, otherTime.msec()) self.assertEqual(dateTime, other.toPython())
def execute(self, df: data.Frame) -> data.Frame: columns = df.colnames df = df.getRawFrame().copy(True) # Notice that this timestamps are already set to a proper format (with default time/date) by # the editor intervals: Dict[int, pd.IntervalIndex] = \ {i: pd.IntervalIndex([pd.Interval(a, b, closed='right') for a, b in zip(opts[0], opts[0][1:])]) for i, opts in self.__attributes.items()} processedDict = dict() for i, opts in self.__attributes.items(): _, labels, byDate, byTime = opts applyCol = df.iloc[:, i] if byTime and not byDate: # Replace the date part with the default date in a way that every ts has the # same date, but retains its original time. Nan values are propagated applyCol = applyCol \ .map(lambda ts: pd.Timestamp(QDateTime(_IntervalWidget.DEFAULT_DATE, toQtDateTime(ts.to_pydatetime()).time()).toPython()), na_action='ignore') name = columns[i] if self.__attributesSuffix: name += self.__attributesSuffix categoriesMap = dict(zip(intervals[i], labels)) processedDict[name] = pd.cut( applyCol, bins=intervals[i]).cat.rename_categories(categoriesMap) if self.__attributesSuffix: duplicateColumns: Set[str] = set( processedDict.keys()) & set(columns) else: duplicateColumns: List[str] = list(processedDict.keys()) if duplicateColumns: df = df.drop(columns=duplicateColumns) processed = pd.DataFrame(processedDict).set_index(df.index) df = pd.concat([df, processed], ignore_index=False, axis=1) if not self.__attributesSuffix: # Reorder columns df = df[columns] return data.Frame(df)
def refresh(cls): if cls.entry is None: return timestamp = cls.entry.timestamp datetime = QDateTime() datetime.setDate(QDate(timestamp.year, timestamp.month, timestamp.day)) datetime.setTime( QTime(timestamp.hour, timestamp.minute, timestamp.second)) cls.cal_timestamp.setDateTime(datetime) hours, minutes, seconds = cls.entry.duration cls.spn_hour.setValue(hours) cls.spn_min.setValue(minutes) cls.spn_sec.setValue(seconds) cls.txt_activity.setText(cls.entry.notes) cls.not_edited()
def restore_from_backup(cls, timestamp: datetime, elapsed): """Restore the timer state from backup.""" # Just ignore less than a second of time. if elapsed < (1000): return # If loading from backup, indicate that fact so we don't clobber timestamp. cls.from_backup = True # Restore the timestamp. cls.timestamp = QDateTime( QDate(timestamp.year, timestamp.month, timestamp.day), QTime(timestamp.hour, timestamp.minute, timestamp.second) ) # Restore the duration cls.freeze = elapsed # Force the user to either save or reset. Resuming makes no sense. cls.paused = False # Show the time. cls.show_time(*cls.get_time())
def set_date(self): self.datef = 'yyyy/M/d h:mm:ss' self.start_dt.setDisplayFormat(self.datef) self.end_dt.setDisplayFormat(self.datef) # 获取当前的时间,表转换成datetime类型 self.currentdt = QDateTime.currentDateTime().toPython() year = self.currentdt.year month = self.currentdt.month day = 1 hour = 0 minute = 0 seccond = 0 self.start_dt.setDateTime(QDateTime(year, month, day, hour, minute, seccond)) self.end_dt.setDateTime(QDateTime.currentDateTime()) # 选择日历 self.start_dt.setCalendarPopup(True) self.end_dt.setCalendarPopup(True)
def replot(): axis = self.axes(Qt.Vertical)[axis_index] d_min = d_max = None for n in cache.columns()[1:]: serie = self.findSerie(n) data = cache[n] if d_min is None: d_min = min(data) d_max = max(data) else: d_min = min(d_min, min(data)) d_max = max(d_max, max(data)) points = [QPointF(*i) for i in zip(cache["timestamp"], data)] serie.replace(points) self.timeAxis.setRange( *(map(QDateTime().fromMSecsSinceEpoch, cache.timeRange()))) axis.setRange(d_min, d_max) self._next_update = time.monotonic() + self.updateInterval
def getDateAsCategoricalColumn(self, column): res = [] for i in range(self.model.rowCount()): t = self.model.index(i, column).data() date_fmt = "yyyy-MM-dd HH:mm:ss.zzz" #outDateFormat = "dd.MM.yyyy (h:mm)" outDateFormat = date_fmt # x = float(QDateTime().fromString(t, date_fmt).toMSecsSinceEpoch()) x = QDateTime().fromString(t, date_fmt).toString(outDateFormat) res.append(x) # y = float(self.model.index(i, columns[1]).data()) # потому что сложно рисовать график с минусовой осью ??? # if x > 0 and y > 0: # self.series.append(x, y) return res
def add_series(self, name, columns): ''' Adding the data to the series, you can modify the axis to properly display the QDateTime on the X-axis, and the magnitude values on the Y-axis. ''' # Create QLineSeries self.series = QtCharts.QLineSeries() self.series.setName(name) # Filling QLineSeries for i in range(self.model.rowCount()): # Getting the data t = self.model.index(i, 0).data() date_fmt = "yyyy-MM-dd HH:mm:ss.zzz" x = QDateTime().fromString(t, date_fmt).toSecsSinceEpoch() y = float(self.model.index(i, 1).data()) if x > 0 and y > 0: self.series.append(x, y) self.chart.addSeries(self.series) # Setting X-axis self.axis_x = QtCharts.QDateTimeAxis() self.axis_x.setTickCount(10) self.axis_x.setFormat("dd.MM (h:mm)") self.axis_x.setTitleText("Date") self.chart.addAxis(self.axis_x, Qt.AlignBottom) self.series.attachAxis(self.axis_x) # Setting Y-axis self.axis_y = QtCharts.QValueAxis() self.axis_y.setTickCount(10) self.axis_y.setLabelFormat("%.2f") self.axis_y.setTitleText("Magnitude") self.chart.addAxis(self.axis_y, Qt.AlignLeft) self.series.attachAxis(self.axis_y) # Getting the color from the QChart to use it on the QTableView self.model.color = "{}".format(self.series.pen().color().name())
def __init__(self, parent: QWidget = None): super(FrmShadowCalendar, self).__init__(parent) self.__iconFont: QFont = QFont() self.currentDate: QDateTime = QDateTime() self.shadowCalendar: ShadowCalendar = ShadowCalendar() self.widgetTop: QWidget = QWidget() self.btnDown: QPushButton = QPushButton() self.btnDown.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) self.btnDown.setMinimumWidth(40) self.btnUp: QPushButton = QPushButton() self.btnUp.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) self.btnUp.setMinimumWidth(40) self.labInfo: QLabel = QLabel() self.labInfo.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self.line = Line(shape=QFrame.HLine, color=QColor("#888888")) layout: QHBoxLayout = QHBoxLayout() layout.addWidget(self.labInfo) layout.addWidget(self.btnUp) layout.addWidget(self.btnDown) layout.setGeometry(QRect(0, 9, 0, 9)) layout.setSpacing(6) self.widgetTop.setLayout(layout) layout: QVBoxLayout = QVBoxLayout() layout.addWidget(self.widgetTop) layout.addWidget(self.line) layout.addWidget(self.shadowCalendar) self.setLayout(layout) self.initForm() self.btnUp.clicked.connect(self.on_btnUp_clicked) self.btnDown.clicked.connect(self.on_btnDown_clicked)
def __init__(self, x, y, width, height, text): """ A Rectangle with some text in it :param text: str :param x: float :param y: float :param height: float :param width: float """ self.x = x self.y = y self.width = width self.height = height self.text = text super(LatestLoadDisplay, self).__init__() # simple state array, represented as a numpy array, 0 = False, 1 = True # [0] = ZIPPED, [1] = SENT, [2] = SUBMITTED, [3] = FINISHED, [4] = DELIVERED self.state = np.zeros(5) print("[0] = ZIPPED, [1] = SENT, [2] = SUBMITTED, [3] = FINISHED, [4] = DELIVERED") print("state = ", self.state) self.mpen = scene_objects.initialize_qpen(QColor(49, 51, 53)) # pycharm gray self.qdate_time = QDateTime()
def add_series(self, name, columns): # Create QLineSeries. self.series = QtCharts.QLineSeries() self.series.setName(name) # Fill QLineSeries. for i in range(self.model.rowCount()): # Get the data. t = self.model.index(i, 0).data() date_fmt = 'yyyy-MM-dd HH:mm:ss.zzz' x = QDateTime().fromString(t, date_fmt).toSecsSinceEpoch() y = float(self.model.index(i, 1).data()) if x > 0 and y > 0: self.series.append(x, y) self.chart.addSeries(self.series) # Set X-axis. self.axis_x = QtCharts.QDateTimeAxis() self.axis_x.setTickCount(10) self.axis_x.setFormat('dd.MM (h:mm)') self.axis_x.setTitleText('Date') self.chart.addAxis(self.axis_x, Qt.AlignBottom) self.series.attachAxis(self.axis_x) # Set Y-axis. self.axis_y = QtCharts.QValueAxis() self.axis_y.setTickCount(10) self.axis_y.setLabelFormat('%.2f') self.axis_y.setTitleText('Magnitude') self.chart.addAxis(self.axis_y, Qt.AlignLeft) self.series.attachAxis(self.axis_y) # Get the color from the QChart to use it on the QTableView. self.model.color = '{}'.format(self.series.pen().color().name())
def __init__(self): super(MyWidget, self).__init__(None) self.view = View() self.grid = DateTimeGrid() self.slider = QSlider() self.model = QStandardItemModel() self.cmodel = ConstraintModel() for h in range(0, 19): topitem = MyStandardItem("Top Item " + str(h)) for i in range(0, 19): item = MyStandardItem("Multi Item " + str(i)) for j in range(0, 29, 3): item.appendRow([ MyStandardItem("Item " + str(j)), MyStandardItem(KDGantt.TypeTask), MyStandardItem(QDateTime.currentDateTime().addDays(j), KDGantt.StartTimeRole), MyStandardItem( QDateTime.currentDateTime().addDays(j + 1 + i / 7), KDGantt.EndTimeRole), MyStandardItem(50) ]) item.appendRow([ MyStandardItem("Event"), MyStandardItem(KDGantt.TypeEvent), MyStandardItem(QDateTime.currentDateTime(), KDGantt.StartTimeRole), MyStandardItem(QDateTime(), KDGantt.EndTimeRole), MyStandardItem("") ]) topitem.appendRow([ item, MyStandardItem(KDGantt.TypeMulti), MyStandardItem(""), MyStandardItem(""), MyStandardItem("") ]) self.model.appendRow([ topitem, MyStandardItem(KDGantt.TypeMulti), MyStandardItem(""), MyStandardItem(""), MyStandardItem("") ]) self.model.appendRow([MyStandardItem("No data")]) ##cmodel.addConstraint( KDGantt::Constraint( proxyModel.index( 0, 3 ), proxyModel.index( 10, 3 ) ) ); ##cmodel.addConstraint( KDGantt::Constraint( proxyModel.index( 10, 3 ), proxyModel.index( 5, 3 ) ) ); pidx = self.model.index(0, 0) pidx = self.model.index(0, 0, pidx) self.cmodel.addConstraint( Constraint(self.model.index(0, 0, pidx), self.model.index(1, 0, pidx))) self.cmodel.addConstraint( Constraint(self.model.index(1, 0, pidx), self.model.index(0, 0, pidx))) self.cmodel.addConstraint( Constraint(self.model.index(1, 0, pidx), self.model.index(10, 0, pidx))) self.cmodel.addConstraint( Constraint(self.model.index(3, 0, pidx), self.model.index(5, 0, pidx))) self.cmodel.addConstraint( Constraint(self.model.index(7, 0, pidx), self.model.index(4, 0, pidx))) self.slider.setOrientation(Qt.Horizontal) self.slider.setRange(1, 10000) self.slider.setValue(100) l = QVBoxLayout(self) l.addWidget(self.view) l.addWidget(self.slider) self.grid.setStartDateTime(QDateTime.currentDateTime().addDays(-3)) self.grid.setDayWidth(100) ##grid.setNoInformationBrush( Qt::NoBrush ); self.view.setGrid(self.grid) self.view.setModel(self.model) ##view.setConstraintModel( &cmodel ); self.slider.valueChanged.connect(self.slotZoom) pb1 = QPushButton("Print Preview...", self) pb2 = QPushButton("Print...", self) l.addWidget(pb1) l.addWidget(pb2) pb1.clicked.connect(self.slotPrintPreview) pb2.clicked.connect(self.slotPrint) gv = self.view.graphicsView() gv.setHeaderContextMenuPolicy(Qt.CustomContextMenu) gv.headerContextMenuRequested.connect(self.slotHeaderMenu)
def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.resize(555, 430) self.actionConnect = QAction(MainWindow) self.actionConnect.setObjectName(u"actionConnect") self.actionExit = QAction(MainWindow) self.actionExit.setObjectName(u"actionExit") self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.tabWidget = QTabWidget(self.centralwidget) self.tabWidget.setObjectName(u"tabWidget") self.tabWidget.setGeometry(QRect(10, 10, 520, 360)) self.tab = QWidget() self.tab.setObjectName(u"tab") self.gridLayoutWidget = QWidget(self.tab) self.gridLayoutWidget.setObjectName(u"gridLayoutWidget") self.gridLayoutWidget.setGeometry(QRect(0, 0, 520, 330)) self.gridLayout = QGridLayout(self.gridLayoutWidget) self.gridLayout.setObjectName(u"gridLayout") self.gridLayout.setContentsMargins(0, 0, 0, 0) self.pushButton = QPushButton(self.gridLayoutWidget) self.pushButton.setObjectName(u"pushButton") sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(10) sizePolicy.setVerticalStretch(10) sizePolicy.setHeightForWidth( self.pushButton.sizePolicy().hasHeightForWidth()) self.pushButton.setSizePolicy(sizePolicy) self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 1) self.tabWidget.addTab(self.tab, "") self.tab_2 = QWidget() self.tab_2.setObjectName(u"tab_2") self.gridLayoutWidget_2 = QWidget(self.tab_2) self.gridLayoutWidget_2.setObjectName(u"gridLayoutWidget_2") self.gridLayoutWidget_2.setGeometry(QRect(0, 0, 520, 330)) self.gridLayout_2 = QGridLayout(self.gridLayoutWidget_2) self.gridLayout_2.setObjectName(u"gridLayout_2") self.gridLayout_2.setContentsMargins(0, 0, 0, 0) self.pushButton_2 = QPushButton(self.gridLayoutWidget_2) self.pushButton_2.setObjectName(u"pushButton_2") sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy1.setHorizontalStretch(0) sizePolicy1.setVerticalStretch(0) sizePolicy1.setHeightForWidth( self.pushButton_2.sizePolicy().hasHeightForWidth()) self.pushButton_2.setSizePolicy(sizePolicy1) self.gridLayout_2.addWidget(self.pushButton_2, 0, 0, 1, 1) self.pushButton_3 = QPushButton(self.gridLayoutWidget_2) self.pushButton_3.setObjectName(u"pushButton_3") sizePolicy1.setHeightForWidth( self.pushButton_3.sizePolicy().hasHeightForWidth()) self.pushButton_3.setSizePolicy(sizePolicy1) self.gridLayout_2.addWidget(self.pushButton_3, 0, 1, 1, 1) self.tabWidget.addTab(self.tab_2, "") self.tab_3 = QWidget() self.tab_3.setObjectName(u"tab_3") self.gridLayoutWidget_3 = QWidget(self.tab_3) self.gridLayoutWidget_3.setObjectName(u"gridLayoutWidget_3") self.gridLayoutWidget_3.setGeometry(QRect(0, 0, 520, 330)) self.gridLayout_3 = QGridLayout(self.gridLayoutWidget_3) self.gridLayout_3.setObjectName(u"gridLayout_3") self.gridLayout_3.setContentsMargins(0, 0, 0, 0) self.pushButton_5 = QPushButton(self.gridLayoutWidget_3) self.pushButton_5.setObjectName(u"pushButton_5") sizePolicy2 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizePolicy2.setHorizontalStretch(0) sizePolicy2.setVerticalStretch(0) sizePolicy2.setHeightForWidth( self.pushButton_5.sizePolicy().hasHeightForWidth()) self.pushButton_5.setSizePolicy(sizePolicy2) self.gridLayout_3.addWidget(self.pushButton_5, 3, 0, 1, 3) self.pushButton_4 = QPushButton(self.gridLayoutWidget_3) self.pushButton_4.setObjectName(u"pushButton_4") sizePolicy2.setHeightForWidth( self.pushButton_4.sizePolicy().hasHeightForWidth()) self.pushButton_4.setSizePolicy(sizePolicy2) self.gridLayout_3.addWidget(self.pushButton_4, 2, 0, 1, 3) self.label_2 = QLabel(self.gridLayoutWidget_3) self.label_2.setObjectName(u"label_2") self.gridLayout_3.addWidget(self.label_2, 1, 0, 1, 1) self.timeEdit_2 = QTimeEdit(self.gridLayoutWidget_3) self.timeEdit_2.setObjectName(u"timeEdit_2") self.timeEdit_2.setDateTime( QDateTime(QDate(2000, 1, 1), QTime(0, 0, 1))) self.timeEdit_2.setMaximumDateTime( QDateTime(QDate(2000, 1, 1), QTime(23, 0, 1))) self.timeEdit_2.setMinimumDateTime( QDateTime(QDate(2000, 1, 1), QTime(0, 0, 1))) self.timeEdit_2.setMaximumTime(QTime(23, 0, 1)) self.timeEdit_2.setMinimumTime(QTime(0, 0, 1)) self.timeEdit_2.setCurrentSection(QDateTimeEdit.HourSection) self.gridLayout_3.addWidget(self.timeEdit_2, 1, 1, 1, 1) self.tabWidget.addTab(self.tab_3, "") self.tab_4 = QWidget() self.tab_4.setObjectName(u"tab_4") self.gridLayoutWidget_4 = QWidget(self.tab_4) self.gridLayoutWidget_4.setObjectName(u"gridLayoutWidget_4") self.gridLayoutWidget_4.setGeometry(QRect(0, 0, 520, 330)) self.gridLayout_4 = QGridLayout(self.gridLayoutWidget_4) self.gridLayout_4.setObjectName(u"gridLayout_4") self.gridLayout_4.setContentsMargins(0, 0, 0, 0) self.spinBox_3 = QSpinBox(self.gridLayoutWidget_4) self.spinBox_3.setObjectName(u"spinBox_3") self.spinBox_3.setMinimum(1) self.spinBox_3.setMaximum(99999) self.gridLayout_4.addWidget(self.spinBox_3, 2, 1, 1, 1) self.pushButton_7 = QPushButton(self.gridLayoutWidget_4) self.pushButton_7.setObjectName(u"pushButton_7") sizePolicy2.setHeightForWidth( self.pushButton_7.sizePolicy().hasHeightForWidth()) self.pushButton_7.setSizePolicy(sizePolicy2) self.gridLayout_4.addWidget(self.pushButton_7, 4, 0, 1, 3) self.pushButton_6 = QPushButton(self.gridLayoutWidget_4) self.pushButton_6.setObjectName(u"pushButton_6") sizePolicy2.setHeightForWidth( self.pushButton_6.sizePolicy().hasHeightForWidth()) self.pushButton_6.setSizePolicy(sizePolicy2) self.gridLayout_4.addWidget(self.pushButton_6, 3, 0, 1, 3) self.label_4 = QLabel(self.gridLayoutWidget_4) self.label_4.setObjectName(u"label_4") self.gridLayout_4.addWidget(self.label_4, 2, 0, 1, 1) self.label_3 = QLabel(self.gridLayoutWidget_4) self.label_3.setObjectName(u"label_3") self.gridLayout_4.addWidget(self.label_3, 0, 0, 1, 1) self.timeEdit_5 = QTimeEdit(self.gridLayoutWidget_4) self.timeEdit_5.setObjectName(u"timeEdit_5") self.timeEdit_5.setDateTime( QDateTime(QDate(2000, 1, 1), QTime(0, 0, 1))) self.timeEdit_5.setMaximumDateTime( QDateTime(QDate(2000, 1, 1), QTime(23, 0, 1))) self.timeEdit_5.setMinimumDateTime( QDateTime(QDate(2000, 1, 1), QTime(0, 0, 1))) self.timeEdit_5.setMaximumTime(QTime(23, 0, 1)) self.timeEdit_5.setMinimumTime(QTime(0, 0, 1)) self.timeEdit_5.setCurrentSection(QDateTimeEdit.HourSection) self.gridLayout_4.addWidget(self.timeEdit_5, 0, 1, 1, 1) self.tabWidget.addTab(self.tab_4, "") self.tab_5 = QWidget() self.tab_5.setObjectName(u"tab_5") self.gridLayoutWidget_5 = QWidget(self.tab_5) self.gridLayoutWidget_5.setObjectName(u"gridLayoutWidget_5") self.gridLayoutWidget_5.setGeometry(QRect(0, 0, 520, 330)) self.gridLayout_5 = QGridLayout(self.gridLayoutWidget_5) self.gridLayout_5.setObjectName(u"gridLayout_5") self.gridLayout_5.setContentsMargins(0, 0, 0, 0) self.label_11 = QLabel(self.gridLayoutWidget_5) self.label_11.setObjectName(u"label_11") self.gridLayout_5.addWidget(self.label_11, 2, 0, 1, 1) self.pushButton_8 = QPushButton(self.gridLayoutWidget_5) self.pushButton_8.setObjectName(u"pushButton_8") sizePolicy2.setHeightForWidth( self.pushButton_8.sizePolicy().hasHeightForWidth()) self.pushButton_8.setSizePolicy(sizePolicy2) self.gridLayout_5.addWidget(self.pushButton_8, 3, 0, 1, 3) self.pushButton_9 = QPushButton(self.gridLayoutWidget_5) self.pushButton_9.setObjectName(u"pushButton_9") sizePolicy2.setHeightForWidth( self.pushButton_9.sizePolicy().hasHeightForWidth()) self.pushButton_9.setSizePolicy(sizePolicy2) self.gridLayout_5.addWidget(self.pushButton_9, 4, 0, 1, 3) self.timeEdit_4 = QTimeEdit(self.gridLayoutWidget_5) self.timeEdit_4.setObjectName(u"timeEdit_4") self.timeEdit_4.setDateTime( QDateTime(QDate(2000, 1, 1), QTime(0, 0, 1))) self.timeEdit_4.setMaximumDateTime( QDateTime(QDate(2000, 1, 1), QTime(23, 0, 1))) self.timeEdit_4.setMinimumDateTime( QDateTime(QDate(2000, 1, 1), QTime(0, 0, 1))) self.timeEdit_4.setMaximumTime(QTime(23, 0, 1)) self.timeEdit_4.setMinimumTime(QTime(0, 0, 1)) self.timeEdit_4.setCurrentSection(QDateTimeEdit.HourSection) self.gridLayout_5.addWidget(self.timeEdit_4, 0, 1, 1, 1) self.label_8 = QLabel(self.gridLayoutWidget_5) self.label_8.setObjectName(u"label_8") self.gridLayout_5.addWidget(self.label_8, 1, 0, 1, 1) self.spinBox_4 = QSpinBox(self.gridLayoutWidget_5) self.spinBox_4.setObjectName(u"spinBox_4") self.spinBox_4.setMinimum(1) self.spinBox_4.setMaximum(99999) self.gridLayout_5.addWidget(self.spinBox_4, 1, 1, 1, 1) self.label_9 = QLabel(self.gridLayoutWidget_5) self.label_9.setObjectName(u"label_9") self.gridLayout_5.addWidget(self.label_9, 0, 0, 1, 1) self.timeEdit_3 = QTimeEdit(self.gridLayoutWidget_5) self.timeEdit_3.setObjectName(u"timeEdit_3") self.timeEdit_3.setDateTime( QDateTime(QDate(2000, 1, 1), QTime(0, 0, 1))) self.timeEdit_3.setMaximumDateTime( QDateTime(QDate(2000, 1, 1), QTime(23, 0, 1))) self.timeEdit_3.setMinimumDateTime( QDateTime(QDate(2000, 1, 1), QTime(0, 0, 1))) self.timeEdit_3.setMaximumTime(QTime(23, 0, 1)) self.timeEdit_3.setMinimumTime(QTime(0, 0, 1)) self.timeEdit_3.setCurrentSection(QDateTimeEdit.HourSection) self.gridLayout_5.addWidget(self.timeEdit_3, 2, 1, 1, 1) self.tabWidget.addTab(self.tab_5, "") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(MainWindow) self.menubar.setObjectName(u"menubar") self.menubar.setGeometry(QRect(0, 0, 555, 30)) self.menuFile = QMenu(self.menubar) self.menuFile.setObjectName(u"menuFile") MainWindow.setMenuBar(self.menubar) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") MainWindow.setStatusBar(self.statusbar) self.menubar.addAction(self.menuFile.menuAction()) self.menuFile.addSeparator() self.menuFile.addAction(self.actionConnect) self.menuFile.addSeparator() self.menuFile.addAction(self.actionExit) self.retranslateUi(MainWindow) self.tabWidget.setCurrentIndex(0) QMetaObject.connectSlotsByName(MainWindow)
def setupUi(self, ConstraintWindow): if not ConstraintWindow.objectName(): ConstraintWindow.setObjectName(u"ConstraintWindow") ConstraintWindow.resize(217, 299) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(ConstraintWindow.sizePolicy().hasHeightForWidth()) ConstraintWindow.setSizePolicy(sizePolicy) self.stackedWidget = QStackedWidget(ConstraintWindow) self.stackedWidget.setObjectName(u"stackedWidget") self.stackedWidget.setGeometry(QRect(10, 30, 181, 181)) font = QFont() font.setBold(False) font.setWeight(50) self.stackedWidget.setFont(font) self.AddTimeConst = QWidget() self.AddTimeConst.setObjectName(u"AddTimeConst") self.FieldStartDate = QDateTimeEdit(self.AddTimeConst) self.FieldStartDate.setObjectName(u"FieldStartDate") self.FieldStartDate.setGeometry(QRect(30, 30, 121, 22)) self.FieldStartDate.setDateTime(QDateTime(QDate(2020, 1, 1), QTime(0, 0, 0))) self.FieldStartDate.setMinimumDateTime(QDateTime(QDate(1819, 9, 14), QTime(0, 0, 0))) self.FieldStartDate.setCalendarPopup(True) self.FieldEndDate = QDateTimeEdit(self.AddTimeConst) self.FieldEndDate.setObjectName(u"FieldEndDate") self.FieldEndDate.setGeometry(QRect(30, 90, 121, 22)) self.FieldEndDate.setAccelerated(False) self.FieldEndDate.setDateTime(QDateTime(QDate(2020, 1, 1), QTime(0, 0, 0))) self.FieldEndDate.setMinimumDateTime(QDateTime(QDate(1819, 9, 14), QTime(0, 0, 0))) self.FieldEndDate.setMaximumTime(QTime(23, 59, 59)) self.FieldEndDate.setCalendarPopup(True) self.LabelStarts = QLabel(self.AddTimeConst) self.LabelStarts.setObjectName(u"LabelStarts") self.LabelStarts.setGeometry(QRect(30, 10, 61, 16)) font1 = QFont() font1.setPointSize(10) self.LabelStarts.setFont(font1) self.LabelEnds = QLabel(self.AddTimeConst) self.LabelEnds.setObjectName(u"LabelEnds") self.LabelEnds.setGeometry(QRect(30, 70, 47, 13)) self.LabelEnds.setFont(font1) self.LabelRepetition = QLabel(self.AddTimeConst) self.LabelRepetition.setObjectName(u"LabelRepetition") self.LabelRepetition.setGeometry(QRect(30, 130, 71, 16)) self.LabelRepetition.setFont(font1) self.ComboRepetition = QComboBox(self.AddTimeConst) self.ComboRepetition.addItem("") self.ComboRepetition.addItem("") self.ComboRepetition.addItem("") self.ComboRepetition.addItem("") self.ComboRepetition.setObjectName(u"ComboRepetition") self.ComboRepetition.setGeometry(QRect(30, 150, 103, 26)) self.ComboRepetition.setSizeAdjustPolicy(QComboBox.AdjustToContents) self.stackedWidget.addWidget(self.AddTimeConst) self.AddTagConst = QWidget() self.AddTagConst.setObjectName(u"AddTagConst") self.LabelSelect = QLabel(self.AddTagConst) self.LabelSelect.setObjectName(u"LabelSelect") self.LabelSelect.setGeometry(QRect(20, 50, 61, 20)) self.LabelSelect.setFont(font1) self.ComboTag = QComboBox(self.AddTagConst) self.ComboTag.setObjectName(u"ComboTag") self.ComboTag.setGeometry(QRect(20, 70, 104, 26)) self.ComboTag.setSizeAdjustPolicy(QComboBox.AdjustToContents) self.stackedWidget.addWidget(self.AddTagConst) self.LabelEvent = QLabel(ConstraintWindow) self.LabelEvent.setObjectName(u"LabelEvent") self.LabelEvent.setGeometry(QRect(10, 10, 41, 21)) self.Add_btn = QPushButton(ConstraintWindow) self.Add_btn.setObjectName(u"Add_btn") self.Add_btn.setGeometry(QRect(40, 260, 61, 21)) self.weightSlider = QSlider(ConstraintWindow) self.weightSlider.setObjectName(u"weightSlider") self.weightSlider.setGeometry(QRect(40, 230, 131, 21)) self.weightSlider.setMaximum(2) self.weightSlider.setOrientation(Qt.Horizontal) self.weightSlider.setTickPosition(QSlider.TicksBothSides) self.LabelWeight = QLabel(ConstraintWindow) self.LabelWeight.setObjectName(u"LabelWeight") self.LabelWeight.setGeometry(QRect(40, 210, 71, 16)) self.LabelWeight.setFont(font1) self.EventValue = QLabel(ConstraintWindow) self.EventValue.setObjectName(u"EventValue") self.EventValue.setGeometry(QRect(50, 40, 71, 20)) self.retranslateUi(ConstraintWindow) self.stackedWidget.setCurrentIndex(0) QMetaObject.connectSlotsByName(ConstraintWindow)
def testDateTimeNow(self): py = datetime.datetime.now() qt = QDateTime(py) self.assertEqual(qt, py)
def testDateTimeConversion(self): dateTime = QDateTime(QDate(2011, 5, 17), QTime(11, 1, 14, 15)) dateTimePy = QDateTime(datetime.datetime(2011, 5, 17, 11, 1, 14, 15000)) self.assertEqual(dateTime, dateTimePy)