Информационная система «Поликлиника»
(дата обращения : 12.11.2022) 21. Тарланов, А. Т. Базы данных и дополнительные компоненты библиотеки PyQT : учебно-методическое пособие / А. Т. Тарланов. — Москва : РТУ МИРЭА, 2021. — 73 с. — Текст : электронный
Разработка файлового менеджера для организации
Hex Color Codes [Электронный ресурс]. – Режим доступа: https://www.color-hex.com/ 47. Learn Python PyQt [Электронный ресурс]. – Режим доступа: https://pythonpyqt.com/ 48. CodeProject - For those who code
Python PyQt 5 Как очистит окно? Вывел одно содержимое на экран, пользователь нажал кнопочку, как сделать чтобы…
Python PyQt 5 Как очистит окно? Вывел одно содержимое на экран, пользователь нажал кнопочку, как сделать чтобы всё с экрана стёрлось и вывелось новое содержимое?
Ответ на вопрос
Для очистки окна в PyQt5 можно использовать метод clear() у виджетов, таких как QLabel, QLineEdit или QTextEdit. Пример:import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Очистка окна')
self.layout = QVBoxLayout()
self.label = QLabel('Содержимое 1')
self.layout.addWidget(self.label)
self.button = QPushButton('Очистить и вывести новое содержимое')
self.button.clicked.connect(self.onClicked)
self.layout.addWidget(self.button)
self.setLayout(self.layout)
def onClicked(self):
self.label.clear()
self.label.setText('Новое содержимое')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())В данном примере создается окно с одним QLabel, который содержит текст 'Содержимое 1'. При нажатии на кнопку 'Очистить и вывести новое содержимое', происходит очистка содержимого QLabel с помощью метода clear() и добавление нового текста с помощью метода setText(). Таким образом, если вы хотите очистить содержимое окна и вывести новое, просто вызовите метод clear() для всех виджетов, которые хотите очистить, и установите новые значения содержимого, вызвав соответствующие методы.
Еще
Есть ли шаблоны интерфейсов для программ? Всем привет. Полтора года пишу программу на PyQt, подхожу к концу…
Есть ли шаблоны интерфейсов для программ? Всем привет. Полтора года пишу программу на PyQt, подхожу к концу и начал задумываться об интерфейсе. Удобстве, красоте, интересным идеям. Решил поискать в интернете
Ответ на вопрос
Да, существуют шаблоны интерфейсов для программ, но их количество и доступность может быть не таким широким, как для веб-сайтов. Возможно, вам стоит обратить внимание на ресурсы, специализирующиеся на дизайне программного обеспечения, например, Dribbble, Behance или GitHub. Там вы можете найти идеи и вдохновение для создания удобного и красивого интерфейса для вашей программы на PyQt. Также, не забывайте обращаться к документации PyQt и руководствам по UX/UI дизайну для создания оптимального пользовательского опыта. Возможно, вы также можете обратиться к дизайнеру для помощи в создании уникального интерфейса для вашего проекта.
Еще
Как создать объект (класс, экземпляр, кнопку в gui) с заранее неизвестным именем в Python, PyQt? Скрипт вытягивает…
именем в Python, PyQt? Скрипт вытягивает из другого файла некоторые данные, заранее неизвестные. и делает из них словарь по типу: info = {date: {finished: {id : time}}} хотелось бы в PyQt сделать отдельную
Ответ на вопрос
Для создания объектов (кнопок) с заранее неизвестными именами в PyQt вы можете использовать словарь, где ключами будут имена кнопок, а значениями сами объекты кнопок. Пример создания кнопок с динамическими именами и их обработчиками:import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
class MyWidget(QWidget):
def __init__(self, data):
super().__init__()
layout = QVBoxLayout(self)
self.buttons = {}
for date, info in data.items():
button = QPushButton(date)
button.clicked.connect(lambda _, date=date: self.show_details(date))
self.buttons[date] = info
layout.addWidget(button)
def show_details(self, date):
print(self.buttons[date]) # Здесь можно реализовать вывод дополнительных деталей
if __name__ == '__main__':
app = QApplication(sys.argv)
data = {
'2022-01-01': {'finished': {1: '10:00', 2: '11:00'}},
'2022-02-01': {'finished': {3: '12:00', 4: '13:00'}}
}
window = MyWidget(data)
window.show()
sys.exit(app.exec_())Чтобы данные хранились не в словаре, а в классе или экземпляре, можно создать отдельный класс или использовать атрибуты класса/экземпляра для хранения данных. Например:class DataHolder:
def __init__(self):
self.info = {}
def add_data(self, date, finished_info):
self.info[date] = finished_info
def get_data(self):
return self.info
class MyWidget(QWidget):
def __init__(self, data_holder):
super().__init__()
layout = QVBoxLayout(self)
self.data_holder = data_holder
for date, info in self.data_holder.get_data().items():
button = QPushButton(date)
button.clicked.connect(lambda _, date=date: self.show_details(date))
layout.addWidget(button)
def show_details(self, date):
print(self.data_holder.get_data()[date]) # Здесь можно реализовать вывод дополнительных деталей
if __name__ == '__main__':
app = QApplication(sys.argv)
data_holder = DataHolder()
data_holder.add_data('2022-01-01', {'finished': {1: '10:00', 2: '11:00'}})
data_holder.add_data('2022-02-01', {'finished': {3: '12:00', 4: '13:00'}})
window = MyWidget(data_holder)
window.show()
sys.exit(app.exec_())Таким образом, вы можете динамически создавать кнопки с разными именами и связывать их с различными обработчиками, а также хранить данные в отдельном классе или экземпляре.
Еще
Как зафиксировать нажатие клавиши на клавиатуре? Как зафиксировать факт нажатия? мне не нужно знать что это…
keyBoardButton wasUsed: print('KeyBoard was used now') можно ли это сделать с использованием PyQt? Второй день ищу инфу, ника не найду чего-то годного
Ответ на вопрос
Да, это можно сделать с использованием библиотеки PyQt. Ниже приведен пример кода на Python с использованием PyQt5 для зафиксирования нажатия клавиши и вывода сообщения в консоль:import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtCore import Qt
class KeyPressLogger(QWidget):
def keyPressEvent(self, event):
print('Key pressed')
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = KeyPressLogger()
widget.setGeometry(100, 100, 300, 200)
widget.setWindowTitle('Key Press Event Logger')
widget.setWindowFlags(Qt.WindowStaysOnTopHint)
widget.show()
sys.exit(app.exec_())В данном примере при нажатии клавиши на клавиатуре будет выводиться сообщение "Key pressed" в консоль.Надеюсь, это поможет вам решить вашу задачу.
Еще
Python — как реализовать ООП с PyQt (connect)? Есть окно в PyQt в нем кнопка Оpen для загрузки файла В том же окне…
Python — как реализовать ООП с PyQt (connect)? Есть окно в PyQt в нем кнопка Оpen для загрузки файла В том же окне есть таблица, которая заполняется содержимым файл Не могу грамотно соединить все( Вот
Ответ на вопрос
Для связывания кнопки с функцией загрузки файла и заполнения таблицы, вы можете использовать сигналы и слоты в PyQt. Вот пример, как вы можете изменить ваш код:Сделайте изменения в классе open_kn, чтобы он создавал сигнал, который будет отправляться при нажатии на кнопку:from PyQt5.QtCore import pyqtSignal
class open_kn(QPushButton):
file_loaded = pyqtSignal(object)
def __init__(self, parent=None):
super(open_kn, self).__init__(parent)
self.setText('Open')
self.resize(self.sizeHint())
self.clicked.connect(self.FileDialog)
def FileDialog(self):
file_dialog = QFileDialog()
file_name, _ = file_dialog.getOpenFileName(self, 'Open file', 'D:\\')
if file_name:
self.file_loaded.emit(file_name)В классе, который содержит таблицу, подключите сигнал к функции, которая будет заполнять таблицу:class HBox4(QGridLayout):
def __init__(self, parent=None):
super(HBox4, self).__init__(parent)
self.table = TableWidget()
self.addWidget(self.table, *(0,0))
self.addWidget(TabDemo(), *(0,1))
open_button = open_kn()
open_button.file_loaded.connect(self.load_file)
def load_file(self, file_name):
data = []
try:
with open(file_name, 'r') as f:
for line in f:
data.append(line.strip())
self.table.setRowCount(len(data))
for i, entry in enumerate(data):
item = QTableWidgetItem()
item.setText(str(entry))
self.table.setItem(i, 0, item)
except Exception as e:
print('Error:', e)Теперь, когда пользователь нажимает на кнопку "Open", сигнал file_loaded отправляется и функция load_file вызывается для загрузки файла и заполнения таблицы данными из него.
Еще
Какой выбрать язык для портативной windows программы? Добрый день. По работе у меня возникла необходимость…
SQlite. В сторону какого языка смотреть в моей ситуации? Что-то вроде c++ и Delphi? Вроде бы почитал, PyQT позволит выполнить задачу, но чувствую что есть подводный камень, наверняка для интерпретатора питона
Ответ на вопрос
В вашей ситуации лучше всего обратить внимание на C++ или Delphi. Эти языки позволяют создавать портативные приложения без необходимости установки дополнительных фреймворков или сред разработки. C++ хорош тем, что позволяет создавать высокопроизводительные приложения и имеет богатый набор библиотек для работы с базами данных, также его код можно скомпилировать в исполняемый файл, который можно запустить на любой системе.Delphi также является хорошим выбором, так как это кроссплатформенный язык программирования, который может быть использован для создания Windows-приложений без необходимости установки дополнительных библиотек.PyQT также может быть вариантом, но у вас могут возникнуть проблемы с необходимостью установки Python и PyQT на рабочей станции, но если это не является принципиальным ограничением, то вы можете попробовать использовать этот инструмент.В целом, рекомендуется обратить внимание на C++ или Delphi для создания портативной Windows-программы в вашей ситуации.
Еще