class WindowClass(QWidget): def __init__(self, parent=None): super(WindowClass, self).__init__(parent) self.btn = QPushButton(self) #self参数则让该按钮显示当前窗体中 self.btn.setText("点击获取日期信息") self.btn.clicked.connect(self.showdate) self.dateEdit = QDateEdit(self) self.timeEdit = QTimeEdit(self) self.dateTimeEdit = QDateTimeEdit(self) self.dateEdit.setCalendarPopup(True) #self.timeEdit.setCalendarPopup(True)#弹出界面是失效的注意; #self.dateTimeEdit.setCalendarPopup(True)#时间是无法选择的 self.dateEdit.move(10, 200) self.timeEdit.move(10, 100) self.dateTimeEdit.move(10, 300) self.dateEdit.setDisplayFormat("yyyy-MM-dd") self.timeEdit.setDisplayFormat("HH:mm:ss") self.dateTimeEdit.setDisplayFormat("yyyy-MM-dd HH:mm:ss") self.setWindowTitle("QDateEdit和QDateTimeEdit控件使用") def showdate(self): print(self.dateEdit.text())
class TimerWidget(QWidget): def __init__(self): super().__init__() self.initUI() # Инициализируем плеер и плейлист, на котором поставим цикличное воспроизведение self.playlist = QMediaPlaylist(self) self.playlist.setPlaybackMode(QMediaPlaylist.Loop) self.player = QMediaPlayer() # Создадим пустую ссылку, чтобы программа не крашилась, если пользователь не выберет мелодию self.url = QUrl() # Подскажем для чего кнопка self.lbl = QLabel('Выберите мелодию для таймера:', self) self.lbl.move(165, 100) # Кнопка для выбора файла с мелодией self.btn_getfile = QPushButton('Выбрать файл', self) self.btn_getfile.move(200, 125) self.btn_getfile.resize(100, 50) self.btn_getfile.clicked.connect(self.getfile) # Кнопка старта таймера self.btn_start = QPushButton('Старт', self) self.btn_start.move(225, 225) self.btn_start.resize(50, 50) self.btn_start.clicked.connect(self.start_timer) # Кнопка остановки таймера до того, как он закончит отсчет self.btn_stop = QPushButton('Стоп', self) self.btn_stop.move(250, 225) self.btn_stop.resize(50, 50) self.btn_stop.clicked.connect(self.stop_timer) self.btn_stop.setVisible(False) # Кнопка паузы таймера self.btn_pause = QPushButton('Пауза', self) self.btn_pause.move(200, 225) self.btn_pause.resize(50, 50) self.btn_pause.clicked.connect(self.pause_timer) self.btn_pause.setVisible(False) # Кнопка для продолжения отсчета таймера self.btn_continue = QPushButton('Дальше', self) self.btn_continue.move(200, 225) self.btn_continue.resize(50, 50) self.btn_continue.clicked.connect(self.continue_timer) self.btn_continue.setVisible(False) # Кнопка для выключения таймера, когда он закончит отсчет self.btn_off = QPushButton('Выкл', self) self.btn_off.move(225, 225) self.btn_off.resize(50, 50) self.btn_off.clicked.connect(self.timer_off) self.btn_off.setVisible(False) # Спрашивваем значение таймера self.get_timer = QTimeEdit(self) self.get_timer.move(185, 175) self.get_timer.resize(130, 50) self.get_timer.setFont(QFont('Times', 15, QFont.Bold)) self.get_timer.setDisplayFormat('HH:mm:ss') # Дисплей для вывода таймера self.dsp = QLCDNumber(self) self.dsp.resize(200, 50) self.dsp.move(150, 175) self.dsp.setVisible(False) self.dsp.setDigitCount(8) # Таймер self.nTimer = QTimer() self.nTimer.timeout.connect(self.timer) def initUI(self): self.setGeometry(100, 100, 500, 500) self.setWindowTitle('Таймер') def start_timer(self): # Добавляем мелодию в плеер self.content = QMediaContent(self.url) self.playlist.addMedia(self.content) self.player.setPlaylist(self.playlist) # Выводим начальное значение времени на дисплей self.dsp.display(self.get_timer.time().toString('hh:mm:ss')) # Переводим время в секунды timer = self.get_timer.time() timer_text = timer.toString('hh:mm:ss') timer_int = list(map(lambda x: int(x), timer_text.split(':'))) self.timer_in_sec = timer_int[0]*3600 + timer_int[1]*60 + timer_int[2] # Проверяем не установили ли нулевое значение if self.timer_in_sec == 0: self.timer_timeout() else: # Запускаем таймер self.nTimer.start(1000) # Махинации с показом кнопок self.btn_start.setVisible(False) self.btn_pause.setVisible(True) self.btn_stop.setVisible(True) self.dsp.setVisible(True) self.get_timer.setVisible(False) self.lbl.setVisible(False) self.btn_getfile.setVisible(False) def timer(self): # Функция обновления таймера и дисплея со временем # Делаем обратный отсчет, отнимая каждую секунду единицу из начального значения self.timer_in_sec -= 1 # Переводим целочисленные значения в строку timer_text = list(map(lambda x: str(x), [self.timer_in_sec // 3600, (self.timer_in_sec % 3600) // 60, (self.timer_in_sec % 3600) % 60])) # Если один символ, то к нему добавляется ноль if len(timer_text[0]) == 1: timer_text[0] = '0' + timer_text[0] if len(timer_text[1]) == 1: timer_text[1] = '0' + timer_text[1] if len(timer_text[2]) == 1: timer_text[2] = '0' + timer_text[2] # Объединяем список в формат hh:mm:ss timer_text = ':'.join(timer_text) # Выводим текст со временем на дисплей self.dsp.display(timer_text) # Если таймер дошел до нуля: if self.timer_in_sec == 0: self.timer_timeout() else: # Обновляем таймер self.nTimer.start(1000) def stop_timer(self): # Останавливаем таймер self.nTimer.stop() # Махинации с кнопками self.btn_start.setVisible(True) self.btn_stop.setVisible(False) self.btn_pause.setVisible(False) self.dsp.setVisible(False) self.btn_continue.setVisible(False) self.get_timer.setVisible(True) self.btn_getfile.setVisible(True) self.lbl.setVisible(True) def continue_timer(self): # Продолжаем таймер с того места, где остановились self.nTimer.start(self.inter) # Махинации с показом кнопок self.btn_continue.setVisible(False) self.btn_pause.setVisible(True) def pause_timer(self): # Ловим оставшееся время таймера self.inter = self.nTimer.remainingTime() # Останавливаем таймер и делаем махинации с показом кнопок self.nTimer.stop() self.btn_pause.setVisible(False) self.btn_continue.setVisible(True) def timer_off(self): # Махинации с кнопками self.btn_start.setVisible(True) self.dsp.setVisible(False) self.get_timer.setVisible(True) self.btn_off.setVisible(False) self.btn_getfile.setVisible(True) self.lbl.setVisible(True) # Останавливаем мелодию self.player.stop() def timer_timeout(self): # Останавливаем таймер self.nTimer.stop() # Махинации с кнопками self.get_timer.setVisible(False) self.btn_stop.setVisible(False) self.btn_pause.setVisible(False) self.btn_continue.setVisible(False) self.btn_off.setVisible(True) self.dsp.setVisible(True) self.lbl.setVisible(False) self.btn_getfile.setVisible(False) # Запускаем функцию воспроизведения мелодии self.playmus() def playmus(self): # Воспроизводим мелодию self.player.play() def getfile(self): # Достаем файл с мелодией и сохраняем её путь fname = QFileDialog.getOpenFileName(self, 'Open File', '/home', 'Audio Files (*mp3 *wav)') self.url = QUrl.fromLocalFile(fname[0])
class ReportGen(PageWindow): def __init__(self): super().__init__() self.initUI() self.createWidgets() def initUI(self): self.setWindowTitle("Report Generation") self.setFixedSize(400, 590) # Set the central widget and the general layout self.generalLayout = QVBoxLayout() self._centralWidget = QWidget(self) self.setCentralWidget(self._centralWidget) self._centralWidget.setLayout(self.generalLayout) def createWidgets(self): self.logSelector=QComboBox(self) self.logSelector.resize(110,40) self.logSelector.move(140,40) self.logSelector.addItem("Resident Log") self.logSelector.addItem("Visitor Log") self.datepicker=QDateEdit(self) self.datepicker.setCalendarPopup(True) self.datepicker.move(145,120) self.datepicker.setDate(dt.today()) self.startTime=QTimeEdit(self) self.startTime.move(65,200) self.endTime=QTimeEdit(self) self.endTime.move(225,200) self.genButton=QPushButton("Generate",self) self.genButton.move(145,280) self.backButton=QPushButton("Back",self) self.backButton.move(145,340) self.backButton.clicked.connect(self.goBack) self.genButton.clicked.connect(self.repGen) def goBack(self): self.goto("welcome") def repGen(self): #print("Hey") log=self.logSelector.currentText() date=str(self.datepicker.date().toPyDate()) #print(date) start=str(self.startTime.time().toPyTime()) end=str(self.endTime.time().toPyTime()) vbox=QVBoxLayout() table=QTableWidget() #print("Heyo") #print(log+" "+date+" "+start+" "+end) repList=getRepData(log,date,start,end) rows=len(repList) print(repList) table.setRowCount(rows+1) if(log=="Resident Log"): #print("hey") table.setColumnCount(4) table.setItem(0,0,QTableWidgetItem("Vehicle No.")) table.setItem(0,1,QTableWidgetItem("Flat No.")) table.setItem(0,2,QTableWidgetItem("Entry Time")) table.setItem(0,3,QTableWidgetItem("Exit Time")) table.resize(650,400) else: table.setColumnCount(5) table.setItem(0,0,QTableWidgetItem("Vehicle No.")) table.setItem(0,1,QTableWidgetItem("Visitor Name")) table.setItem(0,2,QTableWidgetItem("Flat No.")) table.setItem(0,3,QTableWidgetItem("Entry Time")) table.setItem(0,4,QTableWidgetItem("Exit Time")) table.resize(800,400) try: i=1 j=0 for row in repList: for j in range(len(row)): #print(j+" "+row[j]) table.setItem(i,j,QTableWidgetItem(row[j])) i+=1 except Exception as e: print(e) table.horizontalHeader().setDefaultSectionSize(155) table.show() vbox.addWidget(table) self.setLayout(vbox)
class AlarmWidget(QWidget): def __init__(self): super().__init__() self.initUI() # Флаг, чтобы функция вызова будильника не вызвыалась с каждым тиком self.flag_get_up = True # Нулевое время для сброса часов self.zero_time = QTime(0, 0) # Пустая ссылка self.url = QUrl() # Инициализируем плеер и плейлист, который после зацикливаем self.playlist = QMediaPlaylist(self) self.playlist.setPlaybackMode(QMediaPlaylist.Loop) self.player = QMediaPlayer() # Кнопка для выбора файла с музыкой self.btn_getfile = QPushButton('Выбрать файл', self) self.btn_getfile.setFont(QFont('Times', 10)) self.btn_getfile.move(142.5, 25) self.btn_getfile.resize(215, 50) self.btn_getfile.setVisible(False) self.btn_getfile.clicked.connect(self.getfile) # Радио-кнопка для включения будильника self.radio_btn1 = QRadioButton('вкл', self) self.radio_btn1.move(0, 15) self.radio_btn1.setFont(QFont('Times', 10)) self.radio_btn1.toggled.connect(self.on_off) # Радио-кнопка для выключения будильника self.radio_btn2 = QRadioButton('выкл', self) self.radio_btn2.move(0, 40) self.radio_btn2.setChecked(True) self.radio_btn2.setFont(QFont('Times', 10)) self.radio_btn2.toggled.connect(self.on_off) # Значение будильника self.timer_edit = QTimeEdit(self) self.timer_edit.setDisplayFormat('hh:mm') self.timer_edit.move(200, 110) self.timer_edit.resize(100, 50) self.timer_edit.setFont(QFont('Times', 18, QFont.Bold)) self.timer_edit.setVisible(False) # Бирка self.lbl = QLabel('Будильник:', self) self.lbl.move(0, 0) self.lbl.setFont(QFont('Times', 10)) # Подсказка для кнопки выбора мелодии self.lbl2 = QLabel('Выберите мелодию для будильника:', self) self.lbl2.move(142.5, 0) self.lbl2.setVisible(False) self.lbl2.setFont(QFont('Times', 10)) # Бирка self.lbl3 = QLabel('Будильник установлен на:', self) self.lbl3.move(175, 185) self.lbl3.setFont(QFont('Times', 10)) self.lbl3.setVisible(False) # Бирка self.lbl4 = QLabel('Установите время будильника:', self) self.lbl4.move(150, 85) self.lbl4.setFont(QFont('Times', 10)) self.lbl4.setVisible(False) # Кнопка выключения будильника, когда он сработает self.btn = QPushButton('Выключить\nбудильник', self) self.btn.clicked.connect(self.awake) self.btn.resize(100, 100) self.btn.move(200, 200) self.btn.setFont(QFont('Times', 11, QFont.ExtraBold)) self.btn.setVisible(False) # Дисплей для вывода значения будильника self.dis2 = QLCDNumber(self) self.dis2.move(200, 210) self.dis2.resize(100, 50) self.dis2.setVisible(False) # Дисплей с текущим временем self.dis1 = QLCDNumber(self) self.dis1.move(375, 25) self.dis1.resize(100, 50) # Бирка self.lbl5 = QLabel('Сейчас:', self) self.lbl5.move(375, 0) self.lbl5.setFont(QFont('Times', 10)) # Таймер self.nTimer = QTimer() self.nTimer.timeout.connect(self.repeatTime) self.nTimer.start() def initUI(self): self.setGeometry(100, 100, 500, 500) self.setWindowTitle('Будильник') def repeatTime(self): # Вытаскиваем системное время и преобразуем в строку self.time = QTime().currentTime() time_text = self.time.toString('hh:mm') # Вытаскиваем выставленное значение будильника и преобразуем в строку timer = self.timer_edit.time() timer_text = timer.toString('hh:mm') # Выводим значения будильника на дисплей self.dis2.display(timer_text) # Выводим текущее время self.dis1.display(time_text) # Проверяем условия срабатывания будильника if timer_text == time_text and self.flag_get_up and self.radio_btn1.isChecked( ): self.flag_get_up = False self.get_up() else: self.flag_get_up = True def awake(self): # Устанавливаем нулевое значение времени будильника self.timer_edit.setTime(self.zero_time) # Махинация с показом виджетов self.lbl.setVisible(True) self.lbl2.setVisible(True) self.lbl3.setVisible(True) self.lbl4.setVisible(True) self.radio_btn1.setVisible(True) self.radio_btn2.setVisible(True) self.btn_getfile.setVisible(True) self.dis2.setVisible(True) self.timer_edit.setVisible(True) self.btn.setVisible(False) # Останавливаем музыку self.player.stop() def get_up(self): # Махинации с показом виджетов self.lbl.setVisible(False) self.lbl2.setVisible(False) self.lbl3.setVisible(False) self.lbl4.setVisible(False) self.radio_btn1.setVisible(False) self.radio_btn2.setVisible(False) self.btn_getfile.setVisible(False) self.dis2.setVisible(False) self.timer_edit.setVisible(False) self.btn.setVisible(True) # Включаем музыку self.player.play() def getfile(self): # Достаем файл с мелодией и сохраняем её путь fname = QFileDialog.getOpenFileName(self, 'Open File', '/home', 'Audio Files (*mp3 *wav)') self.url = QUrl.fromLocalFile(fname[0]) # Устанавливаем музыку в плеер self.content = QMediaContent(self.url) self.playlist.clear() self.playlist.addMedia(self.content) self.player.setPlaylist(self.playlist) def on_off(self): # Включаем/выключаем будильник if self.radio_btn1.isChecked(): self.btn_getfile.setVisible(True) self.timer_edit.setVisible(True) self.dis2.setVisible(True) self.lbl2.setVisible(True) self.lbl3.setVisible(True) self.lbl4.setVisible(True) else: self.btn_getfile.setVisible(False) self.timer_edit.setVisible(False) self.dis2.setVisible(False) self.lbl2.setVisible(False) self.lbl3.setVisible(False) self.lbl4.setVisible(False) self.timer_edit.setTime(self.zero_time) self.btn.setVisible(False) self.player.stop()
class WindowAudiencias(QWidget): def __init__(self, db, parent=None): super(WindowAudiencias, self).__init__(parent) self.db = db self.setWindowIcon(QIcon("static/logo.ico")) self.setWindowTitle("Audiências do Tribunal de Justiça") self.resize(800, 600) self.filtered_date = False self.filtered_vara = False # buttons x_btn = 600 y_btn_gap = 20 y_btn_step = 50 self.btn_font = QFont() self.btn_font.setBold(True) self.btn_font.setPixelSize(12) def create_button(window, on_click, text, tip, pos): button = QPushButton(text, window) button.setToolTip(tip) button.move(x_btn, y_btn_gap + y_btn_step * pos) button.clicked.connect(on_click) button.resize(150, 40) button.setFont(self.btn_font) return button self.btn_insert_audiencia = create_button( self, self.on_click_insert_audiencia, 'Inserir Audiência', 'Criar uma nova Audiência no banco de dados.', 0) self.btn_update_audiencia = create_button( self, self.on_click_update_audiencia, 'Atualizar Audiência', 'Atualizar uma Audiência do banco de dados.', 1) self.btn_delete_audiencia = create_button( self, self.on_click_delete_audiencia, 'Remover Audiência', 'Remover uma Audiência do banco de dados.', 2) self.btn_atividades = create_button( self, self.on_click_open_atividades, 'Atividades Audiência', 'Abrir a janela de atividades da Audiência.', 3) # filter buttons def create_filter_button(window, on_click, icon, tip, x): filter_button = create_button(window, on_click, '', tip, 3.5) filter_button.setIcon(QIcon('./static/{}'.format(icon))) filter_button.resize(40, 40) filter_button.move(x, y_btn_gap + y_btn_step * 3.5) filter_button.setIconSize(QSize(30, 30)) return filter_button self.btn_filter_vara = create_filter_button( self, self.on_click_filter_vara, 'filter_vara.png', 'Filtrar Audiências pela Vara.', 300) self.btn_filter_date = create_filter_button( self, self.on_click_filter_date, 'filter_data.png', 'Filtrar Audiências por data da Audiência.', 350) self.btn_remove_filter_date = create_filter_button( self, self.on_click_remove_filters, 'rm_filter.png', 'Remover filtros das Audiências.', 400) # labels def create_label(window, text, x, pos): label = QLabel(window) label.setText(text) y_gap = 20 y_step = 50 label.move(x, y_gap + pos * y_step) return label x_in_1 = 50 x_in_2 = 220 create_label(self, 'Vara', x_in_1, 0) create_label(self, 'Processo', x_in_1, 1) create_label(self, 'Tipo', x_in_1, 2) create_label(self, 'Audiências', x_in_1, 4) create_label(self, 'Horário', x_in_2, 0) create_label(self, 'Data Audiência', x_in_2, 1) create_label(self, 'Data Despacho', x_in_2, 2) # line edit y_gap = 37 y_step = 50 def create_line_edit(window, x, pos): line_edit = QLineEdit(window) line_edit.move(x, y_gap + pos * y_step) line_edit.resize(150, 24) return line_edit self.line_processo = create_line_edit(self, x_in_1, 1) # date edit def create_date_edit(window, x, pos): date_edit = QDateEdit(self) date_edit.move(x, y_gap + pos * y_step) date_edit.resize(150, 24) return date_edit self.date_data_audiencia = create_date_edit(self, x_in_2, 1) self.date_data_despacho = create_date_edit(self, x_in_2, 2) # time edit self.time_horario = QTimeEdit(self) self.time_horario.move(x_in_2, y_gap + 0 * y_step) self.time_horario.resize(150, 24) # combo-box def create_cb(window, list_items, x, pos): combo_box = QComboBox(window) combo_box.addItems(list_items) combo_box.move(x, y_gap + pos * y_step) combo_box.resize(150, 24) return combo_box self.cb_vara = create_cb(self, ["1", "2"], x_in_1, 0) self.cb_tipo = create_cb(self, [ "Instrução e Julgamento", "Oitiva", "Interrogatório", "Depoimento Especial", "UNA", "Continuação", "Carta Precatória" ], x_in_1, 2) # check-box self.ck_urgente = QCheckBox("Urgente", self) self.ck_urgente.move(x_in_1, y_gap - 17 + 3 * y_step) # table self.table_audiencias = QTableWidget(self) self.table_audiencias.move(50, 240) self.table_audiencias.resize(700, 300) self.table_audiencias.itemSelectionChanged.connect( self.table_audiencias_select) self.set_table_audiencias_content(self.filtered_date, self.filtered_vara) # table functions def set_table_audiencias_content(self, filtered_date, filtered_vara): audiencias = self.db.get_audiencias() self.table_audiencias.clear() headers = list(self.db.get_audiencia_columns()) n_rows = len(audiencias) self.table_audiencias.setRowCount(n_rows) if (n_rows <= 0): return self.table_audiencias.setColumnCount(len(audiencias[0])) self.table_audiencias.setHorizontalHeaderLabels(headers) ignored_rows = [] for row, record in enumerate(audiencias): ignore_row = False for column, content in enumerate(record): self.table_audiencias.setItem(row, column, QTableWidgetItem(content)) if (filtered_date): if (headers[column] == 'data_audiencia' and content != self.get_date_data_audiencia()): if (row not in ignored_rows): ignored_rows.append(row) if (filtered_vara): if (headers[column] == 'vara' and content != self.get_cb_vara()): if (row not in ignored_rows): ignored_rows.append(row) for i, row in enumerate(ignored_rows): self.table_audiencias.removeRow(row - i) def table_audiencias_select(self): currentRow = self.table_audiencias.currentRow() self.table_audiencias.selectRow(currentRow) vara_index = self.cb_vara.findText( self.table_audiencias.item(currentRow, 0).text()) self.cb_vara.setCurrentIndex(vara_index) tipo_index = self.cb_tipo.findText( self.table_audiencias.item(currentRow, 2).text()) self.cb_tipo.setCurrentIndex(tipo_index) status_urgente = self.table_audiencias.item(currentRow, 3).text() status_urgente = 2 if status_urgente == 'Sim' else 0 self.ck_urgente.setCheckState(status_urgente) txt_horario = self.table_audiencias.item(currentRow, 4).text() self.time_horario.setTime(self.transform_to_qtime(txt_horario)) select_processo = self.table_audiencias.item(currentRow, 1) select_data_audiencia = self.table_audiencias.item(currentRow, 5) if (select_processo and select_data_audiencia): select_processo = select_processo.text() self.line_processo.setText(select_processo) date_to_set = self.transform_to_qdate(select_data_audiencia.text()) self.date_data_audiencia.setDate(date_to_set) select_data_despacho = self.table_audiencias.item(currentRow, 6) if (select_data_despacho): date_to_set = self.transform_to_qdate(select_data_despacho.text()) self.date_data_despacho.setDate(date_to_set) # get data functions def transform_to_qdate(self, date_str): date_list = date_str.split('/') return QDate(int(date_list[2]), int(date_list[1]), int(date_list[0])) def transform_to_qtime(self, time_str): time_list = time_str.split(':') return QTime(int(time_list[0]), int(time_list[1])) def get_ck_urgente(self): return self.ck_urgente.checkState() def get_cb_vara(self): return self.cb_vara.currentText() def get_cb_tipo(self): return self.cb_tipo.currentText() def get_line_processo(self): return self.line_processo.text() def get_time_horario(self): return self.time_horario.text() def get_date_data_audiencia(self): return self.date_data_audiencia.text() def get_date_data_despacho(self): return self.date_data_despacho.text() # button functions def on_click_filter_date(self): self.filtered_date = True self.set_table_audiencias_content(self.filtered_date, self.filtered_vara) def on_click_filter_vara(self): self.filtered_vara = True self.set_table_audiencias_content(self.filtered_date, self.filtered_vara) def on_click_remove_filters(self): self.filtered_date = False self.filtered_vara = False self.set_table_audiencias_content(self.filtered_date, self.filtered_vara) def on_click_insert_audiencia(self): self.db.insert_audiencia(vara=self.get_cb_vara(), processo=self.get_line_processo(), tipo=self.get_cb_tipo(), urgente=self.get_ck_urgente(), horario=self.get_time_horario(), data_audiencia=self.get_date_data_audiencia(), data_despacho=self.get_date_data_despacho()) self.set_table_audiencias_content(self.filtered_date, self.filtered_vara) def on_click_delete_audiencia(self): currentRow = self.table_audiencias.currentRow() drop_processo = self.table_audiencias.item(currentRow, 1) drop_data_audiencia = self.table_audiencias.item(currentRow, 5) if (drop_processo and drop_data_audiencia): drop_processo = drop_processo.text() drop_data_audiencia = drop_data_audiencia.text() self.db.delete_audiencia(drop_processo, drop_data_audiencia) print('Audiência removida do banco de dados.') self.set_table_audiencias_content(self.filtered_date, self.filtered_vara) def on_click_update_audiencia(self): currentRow = self.table_audiencias.currentRow() update_processo = self.table_audiencias.item(currentRow, 1) update_data_audiencia = self.table_audiencias.item(currentRow, 5) if (update_processo and update_data_audiencia): update_processo = update_processo.text() update_data_audiencia = update_data_audiencia.text() self.db.update_audiencia( vara=self.get_cb_vara(), processo=update_processo, tipo=self.get_cb_tipo(), urgente=self.get_ck_urgente(), horario=self.get_time_horario(), data_audiencia=update_data_audiencia, data_despacho=self.get_date_data_despacho()) self.set_table_audiencias_content(self.filtered_date, self.filtered_vara) def on_click_open_atividades(self): use_processo = self.get_line_processo() use_data_audiencia = self.get_date_data_audiencia() if (len(use_processo) != 13 or len(use_data_audiencia) != 10): print('Audiência selecionada é inválida.') else: self.windowAtividades = WindowAtividades(self.db, use_processo, use_data_audiencia, self.get_cb_vara()) self.windowAtividades.show()
class Example(QWidget): def __init__(self): super().__init__() self.clear_lineedit = QLineEdit(self) self.info_sort = '' self.list = [] self.dict = {} self.flag_print_file_info = True self.initUI() def initUI(self): self.setGeometry(300, 300, 940, 650) self.setWindowTitle('Первая программа') self.myListView = QListView(self) self.myListView.resize(300, 500) self.myListView.move(600, 0) self.cal = QCalendarWidget(self) self.cal.resize(500, 500) self.cal.move(0, 0) self.time = QTimeEdit(self) self.time.resize(50, 50) self.time.move(520, 250) self.helps = QLabel('Введите событие:', self) self.helps.move(0, 530) self.input_ivents = QLineEdit(self) self.input_ivents.resize(200, 50) self.input_ivents.move(130, 520) self.setStyleSheet("QLabel { font-size:15px}") self.button = QPushButton('Добавить', self) self.button.move(80, 580) self.print_file_info() self.button.clicked.connect(self.push) self.show() def print_file_info(self): if len(z) > 1: for x in range(len(z)): x = z[x].split() self.dict[x[1]] = x[0] x = x[1].split('.') x = ''.join(x) self.list.append(x) elif len(z) == 2: x = z[0].split() self.dict[x[1]] = x[0] x = x[1].split('.') x = ''.join(x) self.list.append(x) if self.flag_print_file_info: for x in range(len(self.list)): self.list[x] = int(self.list[x]) self.list.sort() model = QtGui.QStandardItemModel() self.myListView.setModel(model) for x in range(len(self.list)): self.list[x] = str(self.list[x]) for e in self.list: for x in self.dict.keys(): if ''.join(x.split('.')) == str(e): p = x.split('.') i = QtGui.QStandardItem(self.dict[x] + ' ' + p[2] + '.' + p[1] + '.' + p[0] + ' ' + p[3] + ':' + p[-1]) model.appendRow(i) self.show() self.flag_print_file_info = False def push(self): time: QTime = self.time.time() self.ivent = self.input_ivents.text() self.info_input = '' date: QDate = self.cal.selectedDate() self.info_input += str(date.year()) + '.' self.info_sort += str(date.year()) if len(str(date.month())) == 1: self.info_input += '0' + str(date.month()) + '.' self.info_sort += '0' + str(date.month()) else: self.info_input += str(date.month()) + '.' self.info_sort += str(date.month()) if len(str(date.day())) == 1: self.info_input += '0' + str(date.day()) + '.' self.info_sort += '0' + str(date.day()) else: self.info_input += str(date.day()) + '.' self.info_sort += str(date.day()) if len(str(time.hour())) == 1: self.info_input += '0' + str(time.hour()) + '.' self.info_sort += '0' + str(time.hour()) else: self.info_input += str(time.hour()) + '.' self.info_sort += str(time.hour()) if len(str(time.minute())) == 1: self.info_input += '0' + str(time.minute()) self.info_sort += '0' + str(time.minute()) else: self.info_input += str(time.minute()) self.info_sort += str(time.minute()) self.info_sort = int(self.info_sort) self.list.append(self.info_sort) self.dict[self.info_input] = self.ivent for x in range(len(self.list)): self.list[x] = int(self.list[x]) self.list.sort() self.info_sort = '' model = QtGui.QStandardItemModel() self.myListView.setModel(model) for x in range(len(self.list)): self.list[x] = str(self.list[x]) for e in self.list: for x in self.dict.keys(): if ''.join(x.split('.')) == str(e): p = x.split('.') i = QtGui.QStandardItem(self.dict[x] + ' ' + p[2] + '.' + p[1] + '.' + p[0] + ' ' + p[3] + ':' + p[-1]) model.appendRow(i) with open('file.txt', 'w', encoding='utf-8') as g: g.seek(0) for x in self.dict.keys(): g.write(self.dict[x] + ' ' + x + '\n') g.close()
class CalendarWindow(QMainWindow): def __init__(self, update=False, id=None, timeval=None, taskval=None): super(CalendarWindow, self).__init__() self.setGeometry(300, 300, 400, 400) if update: self.setWindowTitle("Edit Task") else: self.setWindowTitle("Add Task") self.reminder_data = {} self.commons = Commons() self._id = id self._timeval = timeval self._taskval = taskval self.init_ui() self.update = update def init_ui(self): self.init_calendar() self.init_lineedit() self.init_pushbuttons() self.init_timedit() self.show() def init_calendar(self): try: self.date = QDate() self.calendar = QCalendarWidget(self) self.calendar.adjustSize() self.calendar.setMinimumDate(self.date.currentDate()) except Exception as err: print(err) def init_lineedit(self): self.text = QLineEdit(self) self.text.setMaxLength(250) self.text.setGeometry(5, 310, 40, 40) self.text.setFixedWidth(350) if not self.update: self._taskval = "Enter Task Description" self.text.setPlaceholderText(self._taskval) else: self.text.setText(self._taskval) def init_pushbuttons(self): self.OK = QtWidgets.QPushButton(self) self.OK.setText("OK") self.OK.move(195, 360) self.OK.clicked.connect(self.show_main) self.Cancel = QtWidgets.QPushButton(self) self.Cancel.setText("Cancel") self.Cancel.move(295, 360) self.Cancel.clicked.connect(self.close) def init_timedit(self): self.time = QTime() self.tedit = QTimeEdit(self) if not self.update: self._timeval = self.time.currentTime() else: self._timeval = QtCore.QTime.fromString(self._timeval, 'HH:mm:ss') self.tedit.setTime(self._timeval) self.tedit.move(5, 260) def show_main(self): try: selected_date = self.calendar.selectedDate() print(self.calendar.selectedDate()) selected_time = self.tedit.time() print(selected_time.toString()) print(self.text.text()) self.reminder_data['Selected_Date'] = selected_date.toString() self.reminder_data['Selected_Time'] = selected_time.toString() self.reminder_data['Task_Description'] = self.text.text() print("From Calendar: ", self.reminder_data) if self.update: self.commons.prepare_json(self.reminder_data, self._id) else: self.commons.prepare_json(self.reminder_data) self.close() except Exception as err: print(err)