Вопросы с тегами [pyqt]

1

голосов
1

ответ
30

Просмотры

Что пустышки в threading.current_thread ()?

Я пытаюсь понять код в это Как правильно использовать QThread в PyQt с moveToThread ()? Часть, которая имеет: mainwin .__ init__: MainThread, 140221684574016, GenericWorker .__ init__: MainThread, 140221684574016, GenericWorker.run: пустышки-1, 140221265458944, mainwin.addBatch: пустышки-1, 140221265458944, mainwin.add: пустышки-1, 140221265458944 , mainwin.add: пустышки-1, 140221265458944, mainwin.add: пустышки-1, 140221265458944, mainwin.add: пустышки-1, 140221265458944, mainwin.add: пустышки-1, 140221265458944, mainwin.add: пустышки-1, 140221265458944 представляет интерес для меня, какой манекен -1 элементов точно, я понимаю, что эти рабочие потоки делает работу, но они остаются «живыми» навсегда? или они будут мусора самостоятельно. Если добавить партии было сделано 10k раз будет выходной код имеет 10k пустышки-1 элементов? Я спрашиваю только потому, что я видел подобный вывод при использовании подклассов объектов QThread (используя Pydev в Eclispe во время выполнения кода в режиме отладки). Я не уверен, если это означает, что какое-то утечки (утечка нити), что в конечном итоге потребляет много и много ресурсов.
Man Wa kileleshwa
1

голосов
1

ответ
107

Просмотры

Перекрытие виртуальный защищенный слот QListView во время выполнения

Я использую PyQt 5.9.1, и я хочу подключить QListView.currentChanged к функции во время выполнения. Но по какой-то причине, я могу это сделать только перед вызовом setModel (). Если я называю setModel () (даже с None аргумент) заранее, то моя currentChanged функция никогда не вызывается. # Https://www.pythoncentral.io/pyside-pyqt-tutorial-qlistview-and-qstandarditemmodel/ импорт SYS из PyQt5.QtGui импорта * из PyQt5.QtWidgets импорта * из PyQt5.QtCore импорта * опр currentChanged (текущий, предыдущий) : печать (текущий, предыдущий) приложение = QApplication (sys.argv) модель = QStandardItemModel () продукты = [ 'Cookie тесто', # Должно быть магазин купил 'хумус', # Должно быть домашнее 'Спагетти', # Должно быть дерзким «Dal Makhani», # Должно быть острыми «Шоколад взбитых сливок» # Должно быть обильными] для пищи в пищевых продуктах:
Winand
1

голосов
0

ответ
226

Просмотры

Parent Qt to non-qt window with PyQt

Я пытаюсь родителей в QMainWindow к не кварт приложения (приложение может измениться). Есть идеи, как это сделать? Кварты окно открывается прекрасным и я могу взаимодействовать с Python API в приложениях, однако кварты окно выходит за окном приложения, если я нажимаю на приложении. Я мог бы использовать Qt.WindowStaysOnTopHint флаг, но тогда это на вершине всего, что не является идеальным. Псевдопользователь Пример: Если вы используете приложение (например, Nuke), где основное приложение также кварты на основе вы бы использовать что-то вроде: Защита _nuke_main_window (): «» «Возвращает главное окно Nuke '» «» для OBJ в QtWidgets.qApp.topLevelWidgets (): если (obj.inherits ( 'QMainWindow') и obj.metaObject () имя класса () == 'Литейный :: UI :: DockMainWindow.): возвращение OBJ еще: поднять RuntimeError ( «Не удалось найти DockMainWindow экземпляр») ВДГ = MyWidget (родитель = _nuke_main_window ()) wdg.show () Майя и любое другое окно на основе PyQt также будет работать аналогичным образом. Однако, если приложение Qt разве на основе: ВДГ = MyWidget (родитель = nonQtWindowQt_ised) wdg.show (), где: Защита nonQtWindowQt_ised (): #return главного окна программы как-то, может быть, через питон привязки, как SIP? Любые примеры (в идеале) или направление полезно было бы оценено. Использование PyQt5, Python 3.5 и Linux. #return главного окна программы как-то, может быть, через питон привязки, как SIP? Любые примеры (в идеале) или направление полезно было бы оценено. Использование PyQt5, Python 3.5 и Linux. #return главного окна программы как-то, может быть, через питон привязки, как SIP? Любые примеры (в идеале) или направление полезно было бы оценено. Использование PyQt5, Python 3.5 и Linux.
Mafster
1

голосов
0

ответ
103

Просмотры

pyqt5 qsettings cannot restore a geometry if the name like“maindow/gemotry”

this question from 《Rapid GUI Programming with Python and Qt》.of course it's about pyqt4 and python2. I'm trying to rebuild by pyqt5 and python3 in the chapter 06,something like this seems run error: class Window(QMainWindow): def __init__(self, parent=None): super(Window, self).__init__(parent) btn=QPushButton(self) btn.setText("Demo") layout=QVBoxLayout() layout.addWidget(btn) self.setLayout(layout) settings = QSettings("My Compy", "My App") geometry = settings.value("Window/Geometry") print(geometry) if geometry: self.restoreGeometry(QByteArray(geometry)) state = settings.value("State") print(state) if state: self.restoreState(QByteArray(state)) def closeEvent(self, event): settings = QSettings("My Compy", "My App") settings.setValue("Window/Geometry", self.saveGeometry()) settings.setValue("State", self.saveState()) if __name__ == '__main__': import sys app=QApplication(sys.argv) form=Window() form.show() sys.exit(app.exec()) when I run it ,the first print() output "None",and the second output bytearray when i change the geometry and close,then re—run,window no change. if change the "windows/geometry" to "geometry",the it worked! So,why "windows/geometry" can write to the register,but can not restore it ?
Chenglong Zhang
1

голосов
0

ответ
88

Просмотры

QGraphicsPixmapItem.setScale установить границы пикселя в позиции inconsistant

Я хочу, чтобы увеличить на изображении с помощью QGraphicsPixmapItem.setScale. Однако масштабирование начинает быть очень шаткими при высоких уровнях увеличения, то есть, когда только несколько пикселей заполнить окно. Я наблюдаю то же самое явление в PyQt 4.8.7 и 5.6.0, на Windows 10, а также Ubuntu 16.10. EDIT: протестировано на более позднем PyQt 5.10, с тем же результатом. EDIT: протестированы на понятном C ++ Qt, а также, смотрите ниже. Ниже приведен пример, в котором коэффициент масштабирования управляется с помощью колеса мыши. импортировать NumPy в н.п. попробовать: от PyQt5.QtCore импорта Qt, QRectF из PyQt5.QtGui импорта QImage, QPixmap из PyQt5.QtWidgets импорта QApplication, QGraphicsScene, QGraphicsView, QMainWindow qt_ver = 5, за исключением: из PyQt4.QtCore импорта Qt, QRectF из PyQt4. QtGui импорт QImage, QPixmap из PyQt4.QtGui импорта QApplication, QGraphicsScene, QGraphicsView, масштаб + 1 = Элиф дельта <0: self.zoom - = 1 self.pixi.setScale (np.exp (self.zoom * 0,1)) = окно QMainWindow) window.setGeometry (100, 100, 900, 900) вид ( = MyGraphicsView (окно) window.setCentralWidget (вид) window.show () app.exec () похоже, что масштабирование страдает от округления проблем. Я делаю что-то неправильно? То же самое поведение в C ++, это не / питон вопрос PyQt. Мне интересно, если это может быть из-за эффект дискретизации из-за плохую точность float32? Это может быть трудно исправить. # Включить # включить # включить # включить # включить # включить # включить # включить # включить # включить # включить # включить класс MyGraphicsView: общественный QGraphicsView {частное: ИНТ _zoom = 0; станд :: вектор _im_data; QGraphicsScene * _scene = nullptr; QPixmap _pix; QGraphicsPixmapItem * _pixi = nullptr; общественности: MyGraphicsView (QWidget * Родитель): QGraphicsView (родитель) {_scene = новый QGraphicsScene (QRectF (), это); this-> setHorizontalScrollBarPolicy (Qt :: ScrollBarAlwaysOff); this-> setVerticalScrollBarPolicy (Qt :: ScrollBarAlwaysOff); этом-> setScene (_scene); _im_data.resize (100 * 100 * 3); станд :: random_device-й; станд :: mt19937 т (е ()); станд :: uniform_int_distribution Распределители (0, СТД :: numeric_limits :: макс ()); для (авто и е: _im_data) е = станд :: uint8_t (Распределители (мт)); авто-им = QImage (_im_data.data (), 100, 100, QImage :: Format_RGB888); _pix = QPixmap :: fromImage (станд :: ход (им)); _pixi = _scene-> addPixmap (_pix); _pixi-> setOffset (-50, -50); .} Недействительный wheelEvent (QWheelEvent * событие) {переопределение автоматической дельта = событийно> angleDelta () у (); если (дельта> 0) ++ _ масштабирования; иначе если (дельта <0) --_ зум; _pixi-> setScale (станд :: ехр (_zoom * 0,1)); }}; INT основных (INT ARGC, символ * ARGV []) {QApplication а (ARGC, ARGV); автоматическое окно = новый QMainWindow (); window-> setGeometry (100, 100, 900, 900); автоматический вид = новый MyGraphicsView (окно); window-> setCentralWidget (вид); окно-> показать (); вернуть a.exec (); } EDIT Может быть ошибка. Я подал QTBUG-66310. символ * ARGV []) {QApplication а (ARGC, ARGV); автоматическое окно = новый QMainWindow (); window-> setGeometry (100, 100, 900, 900); автоматический вид = новый MyGraphicsView (окно); window-> setCentralWidget (вид); окно-> показать (); вернуть a.exec (); } EDIT Может быть ошибка. Я подал QTBUG-66310. символ * ARGV []) {QApplication а (ARGC, ARGV); автоматическое окно = новый QMainWindow (); window-> setGeometry (100, 100, 900, 900); автоматический вид = новый MyGraphicsView (окно); window-> setCentralWidget (вид); окно-> показать (); вернуть a.exec (); } EDIT Может быть ошибка. Я подал QTBUG-66310.
P-Gn
1

голосов
0

ответ
148

Просмотры

QTextEdit и QPrintPreview медленно работает с большой HTML таблицы

Я пытаюсь создавать отчеты, как MS Access, и благодаря QTextEdit пример все работает очень хорошо. Но когда я открываю большой HTML-таблицу (около 5000 строк), она занимает около 35 секунд, чтобы загрузить таблицу - так это очень медленно. Как оптимизировать распечатку предварительного просмотра? Может загрузить только одну страницу и изменить текущую страницу в окне предварительного просмотра печати? Но я не могу найти, как получить доступ к кнопкам печати предварительного просмотра. Или, может быть, изменить что-то с моей HTML таблицы? #! / USR / бен / ENV питона импорт SYS из PyQt4 импорта QtCore, QtGui класса TextEdit (QtGui.QMainWindow): Защита __init __ (я, имя_файл = None, родитель = None): супер (TextEdit, самость) .__ INIT __ (родитель) self.setupFileActions () self.textEdit = QtGui.QTextEdit (сам) self.setCentralWidget (self.textEdit), если имя_файл Нет: имя_файл =»./test5000. 20, 20, 0) printer.setResolution (300) предварительный просмотра = QtGui.QPrintPreviewDialog (принтер, сам) preview.paintRequested.connect (self.printPreview) preview.exec_ () Защита PrintPreview (сам, принтер): self.textEdit.print_ (принтер), если __name__ == '__main__': приложение = QtGui.QApplication (sys.argv) mainWindows = [] для Fn в sys.argv [1:] или [Отсутствует]: TextEdit = TextEdit (п) textEdit.resize ( 1024, 768) textEdit.show () mainWindows.append (TextEdit) sys.exit (app.exec_ ()) Пример HTML-файл с изображениями здесь. При запуске скрипта он открывает HTML-файл (медленно), а затем меню Файл-> Предварительный просмотр запускает диалоговое окно печати предварительного просмотра. PrintPreview) preview.exec_ () Защиту PrintPreview (самость, принтер): self.textEdit.print_ (принтер), если __name__ == '__main__': приложение = QtGui.QApplication (sys.argv) mainWindows = [] для Fn в SYS. ARGV [1:] или [Отсутствует]: TextEdit = TextEdit (п) textEdit.resize (1024, 768) textEdit.show () mainWindows.append (TextEdit) sys.exit (app.exec_ ()) Пример HTML-файл с изображениями это здесь. При запуске скрипта он открывает HTML-файл (медленно), а затем меню Файл-> Предварительный просмотр запускает диалоговое окно печати предварительного просмотра. PrintPreview) preview.exec_ () Защиту PrintPreview (самость, принтер): self.textEdit.print_ (принтер), если __name__ == '__main__': приложение = QtGui.QApplication (sys.argv) mainWindows = [] для Fn в SYS. ARGV [1:] или [Отсутствует]: TextEdit = TextEdit (п) textEdit.resize (1024, 768) textEdit.show () mainWindows.append (TextEdit) sys.exit (app.exec_ ()) Пример HTML-файл с изображениями это здесь. При запуске скрипта он открывает HTML-файл (медленно), а затем меню Файл-> Предварительный просмотр запускает диалоговое окно печати предварительного просмотра. размер (1024, 768) textEdit.show () mainWindows.append (TextEdit) sys.exit (app.exec_ ()) Пример HTML-файл с изображениями здесь. При запуске скрипта он открывает HTML-файл (медленно), а затем меню Файл-> Предварительный просмотр запускает диалоговое окно печати предварительного просмотра. размер (1024, 768) textEdit.show () mainWindows.append (TextEdit) sys.exit (app.exec_ ()) Пример HTML-файл с изображениями здесь. При запуске скрипта он открывает HTML-файл (медленно), а затем меню Файл-> Предварительный просмотр запускает диалоговое окно печати предварительного просмотра.
pythoff
1

голосов
1

ответ
366

Просмотры

Как установить равный масштаб для осей в pyqtgraph участке?

В документации о AxisItem я нашел фразу «По умолчанию, масштабирование оси 1,0». Но при выполнении простейшей программы с линией plotWidget = pg.plot () весы для й и у различны. Как настроить их?
DSblizzard
1

голосов
0

ответ
84

Просмотры

Добавить глобальную горячую клавишу для Toogle отображения графического интерфейса пользователя для PyQt5

Я создал программу с PyQt5. По умолчанию графический интерфейс скрыт в системном трее. Я могу правой кнопкой мыши на значок в системе попытке открыть графический интерфейс. Мне интересно, если я могу установить глобальную горячую клавишу, так что я могу переключить основной графический интерфейс, показанный и скрытый. Это сэкономит мне несколько мышей. Благодарю.
user890207
1

голосов
0

ответ
112

Просмотры

экспортер pyqtgraph смещает компоненты сюжетные

У меня есть пример код, который производит стандартную диаграмму рассеяния с парой X и Y. Для проекта я работаю, мы не можем использовать Matplotlib, но придерживаться pyqtgraph вместо (она является частью проекта PyQt). от PyQt4 импорта QtGui импорта pyqtgraph как пг импорта pyqtgraph.exporters импорта NumPy как нп х = np.random.normal (размер = 100) у = np.random.normal (размер = 100) приложение = QtGui.QApplication ([]) # создания приложения ш = QtGui.QWidget () pwidget = pg.PlotWidget () pwidget.addLegend (размер = (100, 10)) # добавить легенды pwidget.plot (х, у, ручка = нет, символ = "о" , имя = "Мои данные") # участок линии передачи данных = pg.InfiniteLine (угол = 45, подвижный = False) # добавить линию через pwidget.addItem происхождения (линия) pwidget.setXRange (-3, 3) pwidget.setYRange (-3, 3) раскладка = QtGui.QGridLayout () w.setLayout (макет) layout.addWidget (pwidget) w.show () приложение. exec_ () Теперь этот код прекрасно работает и делает то, что он должен делать. Это скриншот из всплывающего окна: При попытке экспорта, как это, однако: экспортер = pg.exporters.ImageExporter (pwidget.plotItem) exporter.export ( «D: /file_example.png») я получаю следующее сообщение об ошибке: Файл "C: \ OSGeo4W64 \ приложения \ python27 \ Lib \ сайт-пакеты \ pyqtgraph \ экспортеров \ ImageExporter.py", линия 70, в экспортном BG = np.empty ((self.params [ 'ширина'], self.params [ «высота»], 4), DTYPE = np.ubyte) TypeError: «поплавок» объект не может быть истолкована как индекс доктор Google показал мне, что это может быть ошибкой версии I (должна) использовать и что есть обходной путь установки ширины и высоты вручную. Так что я обновил код вроде этого: экспортер = pg.exporters.ImageExporter (pwidget.plotItem) exporter.params.param ( 'ширина'). SetValue (1024, blockSignal = exporter.widthChanged) exporter.params.param ( 'высота') SetValue (860, blockSignal = exporter.heightChanged) exporter.export ( 'D: /file_example.png'). со следующим весьма тревожным результатом Я играл с exporter.params, но ничего не изменило результата. Любые идеи, высоко ценятся, спасибо!
offeltoffel
1

голосов
0

ответ
127

Просмотры

Окно Значок не отображается, когда замороженные с cx_Freeze

Я использую Python 3.6, PyQt5 и cx_Freeze в среде Windows. Часть коды я использую, чтобы отобразить значок в главном окне и детских окнах: если GETATTR (SYS, «замороженный», False): # Если заморожено с cx_Freeze HOMEPATH = os.path.dirname (sys.executable) еще: # в противном случае, если работает разморожены (например, в пределах Spyder) HOMEPATH = os.path.dirname (__ FILE__) iconFileName = os.path.join (HOMEPATH, 'iconLarge.ico') setWindowIcon (QIcon (iconFileName)) замороженные программы по умолчанию под управлением Windows подобранный значок вместо значка я обозначил в коде. Однако, разморожен скрипт отображает iconLarge.ico, как я ожидаю, что это. Все решения, которые я нашел до сих пор, при использовании PyQt4 вместо PyQt5, и те решения, либо не применимы к PyQt5 или не решить эту проблему. Вот код из установки. ру, который идентифицирует файл иконка: ех = Исполняемые (сценарий = «mycode.py», база = «Win32GUI», значок = «iconLarge.ico») cx_Freeze помещает файл iconLarge.ico в основной папке замерзшей сборки, которая где я ожидаю, что это будет. Остальная часть замерзшего приложения работает именно так, как должно быть. Предложения о том, как получить значок окна появляются при замораживании с cx_Freeze?
slalomchip
1

голосов
0

ответ
292

Просмотры

Pyqt5 QAbstractTableModel dataChanged не обновляет данные

Я пытаюсь обновить QTableView после я получаю уведомление через pydispatcher изменения в системе. Я создать следующие функции Защиту ROWCOUNT (я, родитель = None): возвращает Len (self.m_list) Защиту ColumnCount (я, родитель = None): возвращать LEN (self.table_def) Защиту headerData (самости, Col, ориентации, роль ): если ориентация == Qt.Horizontal и роль == Qt.DisplayRole: возвращение self.table_def [Col] [ 'Заголовок'] вернуться QVariant () DEF данные (самостоятельно, индекс, роль = Qt.DisplayRole): если не индексировать .isValid (): не возвращать None, если index.row ()> = LEN (self.m_list) или index.row () <0: возвращение Отсутствует строка = index.row () Col = index.column () для печати ( "Вызывается для (% S,% S,% ы)»% (строка, столбец, роль)), если роль == Qt.DisplayRole: возвращение self.table_def [index.column ()] [ 'Функция'] (индекс. ряд ()) Элиф роль == Qt.BackgroundRole: партия = (index.row () // 100)% 2, если партия == 0:.. вернуть QApplication.palette () базу () возвращают QApplication.palette () AlternateBase () еще: возвращает None Защиты флагов (самоощущение, индекс): если не index.isValid (): возвращает None возвращение Qt.ItemIsEnabled Защиты update_model (самостоятельно, данные): печать ( 'update_model') index_1 = self.index (0, 0) index_2 = self.index (0, 1) self.dataChanged.emit (index_1, index_2, [Qt.DisplayRole]) линия self.dataChanged.emit (index_1, index_2, [Qt.DisplayRole]) не кажется Делать что-нибудь; то есть данные (самостоятельно, индекс, роль = Qt.DisplayRole) не вызывается. Если я нажимаю на столе, то данные (самостоятельно, индекс, роль = Qt.DisplayRole) называется и обновление таблицы. Исправление, я прямо сейчас называть beginResetModel () и endResetModel (). Это работает, но это не так, как она должна работать. Любая идея, что могло случиться?
PBareil
1

голосов
0

ответ
347

Просмотры

Установить labelme аннотирования

Файл "/ Users / хххх / anaconda3 / бен / labelme", ​​строка 7, в от labelme.app импорта основной Файл "/Users/rafikgouiaa/anaconda3/lib/python3.6/site-packages/labelme/app.py", линия 37, в с PyQt4.QtGui импорта * ModuleNotFoundError: нет модуль с именем «PyQt4» ** Похоже, что labelme ищет pyqt5 в Python 2.7, а не в Python 3.6, где установлен pyqt5. Любая помощь по установке labelme или какие-либо другие, отличные labelme и инструментов Matlab инструментов?
BetterEnglish
1

голосов
1

ответ
177

Просмотры

Методы Генерирование pyqtProperty

У меня есть следующий код: класс канал (QObject): nameChanged = pyqtSignal () DEF __init __ (самостоятельно, реквизит, * арг ** kwargs): супер () .__ __ инициализации (* арг, ** kwargs) self._name = реквизит [ "имя"] @pyqtProperty ( "QString", уведомит = nameChanged) имя четкости (само): возвращение имя self._name @ name.setter четкости (самоощущение, имя): self._name = имя self.nameChanged.emit () Это отлично работает для моих текущих (прототипирования) потребностей. Но допустим, что реквизит будет иметь еще несколько ключей, которые я также заинтересован в том, как pyqtPrierty. Есть ли способ, что я могу генерировать сеттер и методы свойств для всех ключей в реквизите?
alexandernst
1

голосов
1

ответ
128

Просмотры

QGraphicesItem излучать сигнал при hoverEnterEvent

То, что это лучший метод / практика для испускания сигнала, при входе либо QGraphicsWidget или QGraphicsItem? В моем MWE я хотел бы инициировать вызов к MainWindow.update, от Square.hoverEnterEvent, когда мышь пользователя (ей) по элементу в QGraphicsScene. Проблема заключается в том, что QGraphicsItem / виджет не предназначен для излучения сигналов. Вместо того, чтобы эти классы могут быть сконфигурированы для обработки событий, передающиеся им из QGraphicsScene. QGraphicsScene обрабатывает случай, когда пользователь выбрал элемент, но не отображается для обработки событий ввода мыши, по крайней мере не существует никакого механизма для entryEvent просачиваться до родительского виджета / окна. импорт SYS из PyQt5.QtWidgets импорта QWidget, QApplication, qApp, QMainWindow, QGraphicsScene, QGraphicsView, QStatusBar, QGraphicsWidget, QStyle из PyQt5.QtCore импорта Qt, ** kvps) # Строка состояния self.stat = QStatusBar (сам) self.setStatusBar (self.stat) self.stat.showMessage ( "Начало") # Widget (s) = self.data QGraphicsScene (сам) self.view = QGraphicsView (self.data, самость) пункт = self.data.addItem (квадрат ()) self.view.ensureVisible (self.data.sceneRect ()) self.setCentralWidget (self.view) # Видимость self.showMaximized () Защита обновление (я, виджет): self.stat.showMessage (ул (widget.name)), если __name__ == "__main__": # Application приложение = QApplication (sys.argv) # Сцена испытания основной = MainWindow () main.show ( ) # Цикл sys.exit (app.exec_ ()) Документы утверждают, что QGraphicsItem не предназначена, чтобы излучать сигналы, вместо этого он предназначен, чтобы реагировать на события, посланных на него QGraphicsScene. В отличие от него, кажется, что QGraphicsWidget разработан, чтобы сделать это, но я не совсем уверен, где точка входа должна быть. Лично я считаю, QGraphicsScene должны быть действительно излучающих эти сигналы, от того, что я понимаю в дизайне, но я не уверен, где точка входа должна быть в этом случае тоже. В настоящее время я вижу следующие возможные решения, с № 3 является предпочтительным методом. Мне было интересно, если кто-то имели лучшую стратегию: Создайте подкласс QGraphicsScene, давайте назовем его сцену, каждое QGraphicsItem / QGraphicsWidget и вызывать пользовательский триггер / сигнал на сцену из каждого виджета. Здесь я бы подкласс любого элемента я намерен на включение в сцене. Установите MainWindow в качестве фильтра событий для каждого элемента в сцене или на самой сцене и вызов MainWindow.update. Набор Mainwindow.data быть подклассом QGraphicsScene, давайте назовем его сцены, и пусть это фильтровать» S собственные события, излучающие сигнал hoverEntry. hoverEntry затем соединяется с MainWindow.update по мере необходимости.
Carel
1

голосов
1

ответ
234

Просмотры

Maya API / PySide2, неправильный аргумент в wrapInstance

Попытка узнать некоторые PySide2 для майя, но нет четкой документации PySide2 еще, так что после поиска в Интернете наступающего здесь снова на помощь ... Я пойду прямо к проблеме - от PySide2 импорта QtWidgets, QtGui импорт maya.cmds как CMDS импорт maya.OpenMayaUI в MUI импорта shiboken2 четкости getMayaWindow (): указатель = mui.MQtUtil.mainWindow (), если указатель не является None: возвращение shiboken2.wrapInstance (длинный (указатель), QtWidgets) Ошибка: Ошибка типа: строка файла 9: ' wrapInstance»называется с неправильными типами аргументов: wrapInstance (длинные, модуль) Поддерживаемые подписи: wrapInstance (size_t, PyType) # с наилучшими пожеланиями!
Vladlen Afanasjev
1

голосов
0

ответ
38

Просмотры

модели Расщепление дерева с использованием прокси-серверов в Qt

У меня есть данные древовидной структуры, которую я хочу смоделировать. Дерево состоит из различных типов элементов, позволяет сказать, TypeA TypeB и TypeC. TypeA может иметь только childeren из TypeA или TypeB. TypeB может иметь только ребенок TypeB или TypeC и TypeC может иметь только ребенок TypeC. Я хочу, чтобы полное дерево во внутренней структуре и только открывается вид на части Itmes в TypeA / B / C. Кроме того, я хочу, чтобы сжать мнения, если некоторые из поддеревьев одинаковы. Я думаю, что я могу сделать это с помощью прокси-серверов, но я не мог заставить его правильно работать еще. Вот мой код до сих пор: импорт SYS из PyQt5 импорта QtCore, QtWidgets, QtGui из PyQt5.Qt импорта Qt, QVariant, QModelIndex из PyQt5.QtCore импорта QAbstractItemModel, QIdentityProxyModel, pyqtSignal класса TreeItem (): ""»адаптированный для питона от HTTP : //doc.qt. IO / QT-5 / qtwidgets-itemviews-simpletreemodel-example.html ""»Защита __init __ (самостоятельно, данные, родитель = None): self._child_items = [] = self._item_data данные self._parent_item = родитель, если родитель: родитель .append_child (сам) Защита __str __ (Я): возвращение "% s:% s" % (само .__ class__, self._item_data) Защита append_child (я, ребенок): если не isinstance (ребенок, TreeItem): поднимать ( "Некоторые исключение TODO ') self._child_items.append (ребенок) Защита get_child (я, item_data): „“»Проверь, если ребенок из передаваемых данных элемента существует. если так вернуть его: пары item_data: Возврат: Найденный ребенок. None, если соответствующий ребенок существует «»»child_item_data = [child._item_data для ребенка в себе. QTreeView () view.setModel (Proxy2) view.expandAll () layout.addWidget (вид) w.show () # view.reset () sys.exit (app.exec_ ()) Левая сторона показывает полное дерево. Если я его правильно работать, я буду иметь это внутреннее, а не показывать на всех пользователей. В середине я показываю только дерево элементов TypeA. Это, кажется, работает правильно. Однако листья все еще показаны как расширяемый, даже если вид не позволит. Справа я хочу показать товар TypeB. Тем не менее, слишком много деревьев показано на рисунке. Поскольку деревья идентичны Я только хочу, чтобы показать одну из них. Т.е. вид / прокси должен объединить дубликаты деревьев. Моя конечная цель, чтобы иметь возможность выбирать элементы из каждого вида и произвести выбор всех подходящих элементов во внутреннем дереве. Во-первых должны получить вид рабочего, хотя. expandAll () layout.addWidget (вид) w.show () # view.reset () sys.exit (app.exec_ ()) Левая сторона показывает полное дерево. Если я его правильно работать, я буду иметь это внутреннее, а не показывать на всех пользователей. В середине я показываю только дерево элементов TypeA. Это, кажется, работает правильно. Однако листья все еще показаны как расширяемый, даже если вид не позволит. Справа я хочу показать товар TypeB. Тем не менее, слишком много деревьев показано на рисунке. Поскольку деревья идентичны Я только хочу, чтобы показать одну из них. Т.е. вид / прокси должен объединить дубликаты деревьев. Моя конечная цель, чтобы иметь возможность выбирать элементы из каждого вида и произвести выбор всех подходящих элементов во внутреннем дереве. Во-первых должны получить вид рабочего, хотя. expandAll () layout.addWidget (вид) w.show () # view.reset () sys.exit (app.exec_ ()) Левая сторона показывает полное дерево. Если я его правильно работать, я буду иметь это внутреннее, а не показывать на всех пользователей. В середине я показываю только дерево элементов TypeA. Это, кажется, работает правильно. Однако листья все еще показаны как расширяемый, даже если вид не позволит. Справа я хочу показать товар TypeB. Тем не менее, слишком много деревьев показано на рисунке. Поскольку деревья идентичны Я только хочу, чтобы показать одну из них. Т.е. вид / прокси должен объединить дубликаты деревьев. Моя конечная цель, чтобы иметь возможность выбирать элементы из каждого вида и произвести выбор всех подходящих элементов во внутреннем дереве. Во-первых должны получить вид рабочего, хотя. exec_ ()) Левая сторона показывает полное дерево. Если я его правильно работать, я буду иметь это внутреннее, а не показывать на всех пользователей. В середине я показываю только дерево элементов TypeA. Это, кажется, работает правильно. Однако листья все еще показаны как расширяемый, даже если вид не позволит. Справа я хочу показать товар TypeB. Тем не менее, слишком много деревьев показано на рисунке. Поскольку деревья идентичны Я только хочу, чтобы показать одну из них. Т.е. вид / прокси должен объединить дубликаты деревьев. Моя конечная цель, чтобы иметь возможность выбирать элементы из каждого вида и произвести выбор всех подходящих элементов во внутреннем дереве. Во-первых должны получить вид рабочего, хотя. exec_ ()) Левая сторона показывает полное дерево. Если я его правильно работать, я буду иметь это внутреннее, а не показывать на всех пользователей. В середине я показываю только дерево элементов TypeA. Это, кажется, работает правильно. Однако листья все еще показаны как расширяемый, даже если вид не позволит. Справа я хочу показать товар TypeB. Тем не менее, слишком много деревьев показано на рисунке. Поскольку деревья идентичны Я только хочу, чтобы показать одну из них. Т.е. вид / прокси должен объединить дубликаты деревьев. Моя конечная цель, чтобы иметь возможность выбирать элементы из каждого вида и произвести выбор всех подходящих элементов во внутреннем дереве. Во-первых должны получить вид рабочего, хотя. Это, кажется, работает правильно. Однако листья все еще показаны как расширяемый, даже если вид не позволит. Справа я хочу показать товар TypeB. Тем не менее, слишком много деревьев показано на рисунке. Поскольку деревья идентичны Я только хочу, чтобы показать одну из них. Т.е. вид / прокси должен объединить дубликаты деревьев. Моя конечная цель, чтобы иметь возможность выбирать элементы из каждого вида и произвести выбор всех подходящих элементов во внутреннем дереве. Во-первых должны получить вид рабочего, хотя. Это, кажется, работает правильно. Однако листья все еще показаны как расширяемый, даже если вид не позволит. Справа я хочу показать товар TypeB. Тем не менее, слишком много деревьев показано на рисунке. Поскольку деревья идентичны Я только хочу, чтобы показать одну из них. Т.е. вид / прокси должен объединить дубликаты деревьев. Моя конечная цель, чтобы иметь возможность выбирать элементы из каждого вида и произвести выбор всех подходящих элементов во внутреннем дереве. Во-первых должны получить вид рабочего, хотя. Моя конечная цель, чтобы иметь возможность выбирать элементы из каждого вида и произвести выбор всех подходящих элементов во внутреннем дереве. Во-первых должны получить вид рабочего, хотя. Моя конечная цель, чтобы иметь возможность выбирать элементы из каждого вида и произвести выбор всех подходящих элементов во внутреннем дереве. Во-первых должны получить вид рабочего, хотя.
user3917718
1

голосов
1

ответ
236

Просмотры

OnClick событие для текстовых полей в PyQt5? [Дубликат]

Этот вопрос уже есть ответ здесь: Добавить щелчок на QLineEdit 3 ответа Может QWidget обнаруживать события мыши от имени QLineEdit? 1 ответ сделать QLabel кликабельным используя PyQt5 1 ответ У нас есть OnClick обработчик события для текстовых полей в PyQt5, как у нас в JQuery и C #? Если нет, Есть ли другой способ обработки кликов на текстовых?
fateh
0

голосов
0

ответ
5

Просмотры

I would like to know how to disable the empty date value in pyqt qcalendar

От PyQt календаря Я хочу передать значение даты в другой класс, проблемы блокируются во время трудной работы. В моем коде: Защита MotherInformation (Я): self.tab1 = Tab1 () tabs.addTab (self.tab1, 'TAB1') Защита Calendar_click (самости, дата): self.tab1.ViewTable (QDate.toPyDate (дата)) Во время выполнения класса Tab1 (QWidget): код был изменен, чтобы сделать работу класса. Класс main_window (QWidget): Защита __init __ (Я): супер (main_window, самость) .__ INIT __ () Защита MotherInformation (сам): self.tab1 = Tab1 () tabs.addTab (self.tab1, 'TAB1') tabs.addTab (QPushButton (), 'TAB2') Защита Calendar_click (самость, дата): self.tab1.ViewTable (QDate.toPyDate (дата)) класс Tab1 (QWidget): Защита __init __ (Я): супер (Tab1, самость) .__ init__ () self.ViewTable () Защиты ViewTable (я, QTableWidgetItem (sqData [sqRows] [sqColumns])) Если вы кликните на календаре, она преуспевает в получении даты, но значение первоначально получил воспринимается как пустой и будет генерировать ошибку, когда в сочетании с SQLITE оператора SQL. В результате, self.tab1 = tab1 () Это потому, что класс кортежи в tabs.addTab (self.tab1, «ТАВ1») часть выполнена с пустым значением кортежа () один раз. Что я должен делать в этом случае?
인정병원
1

голосов
1

ответ
168

Просмотры

Qt макет изменения размера виджета во время свойств анимации

У меня есть существующее приложение, что я полировка от и я хочу, чтобы добавить анимацию несколько виджетов. Анимационные виджеты с QPropertyAnimation вне макетов легко и весело, однако, когда они находятся в макете у меня возникли различные трудности. В настоящее время один дает мне головную боль, что когда я анимировать размер виджета, расположение не подстраиваться это новый размер. Так позволяет сказать, что я есть QVBoxLayout с тремя виджетами: метка, которая должна расширяться на все доступное пространство, в TreeView, и кнопки. При нажатии кнопки я хочу дерево, чтобы свернуть и этикетку, чтобы взять на себя это пространство. Ниже этот пример в коде, и как вы можете видеть, в то время как дерево одушевляет его размер ничего не происходит, а потом, когда я прячу его в конце анимации метка появляется, чтобы заполнить пустое место в настоящее время. Таким образом, кажется, что во время анимации макет «не знает» дерево изменения размера. То, что я хотел бы случиться, что как дерево сжимается, метка расширяется, чтобы заполнить его. Может ли это может быть сделано не абсолютной калибровкой этикетки, но, вызывая изменение размера на макет или что-то в этом роде? Я спрашиваю, потому что я хочу, чтобы оживить несколько виджетов через моего приложения, и я хочу, чтобы найти лучший способ сделать это без того, чтобы сделать слишком много виджетов взаимозависимы друг от друга. Пример кода: Импорт SYS из PyQt4 импорта QtGui, QtCore класса AnimatedWidgets (QtGui.QWidget): Защиту __init __ (Я): супер (AnimatedWidgets, самостоятельно) .__ INIT __ () Layout1 = QtGui.QVBoxLayout () self.setLayout (Layout1) expanding_label = QtGui.QLabel ( "Расширение ярлык!") expanding_label.setStyleSheet ( "границы:
Spencer
1

голосов
2

ответ
44

Просмотры

Context menu is opening when it shouln't (if…elif)

У меня есть QTableWidget с 8 колоннами, и я хочу, контекстное меню, чтобы открыть только в первом (столбец 0), так как в остальных столбцах я использую правую кнопку мыши для другого действия. Когда я первый запуске программы все работает как надо: Если я правая кнопка мыши первой в ячейке столбца 3, например, это делает то, что он должен (вычесть 1 из значения ячейки) и не открывается контекстное меню, идеально подходит , НО после того, как я правая кнопка мыши на колонке 0 первыми, чтобы открыть контекстное меню (работает нормально), если я вернусь в колонку 3 и правую кнопку мыши ... Контекстное меню открывается! И это также делает действие должно (вычитая одно из значений ячеек)! Вот код, я использую: класс Table (QtWidgets.QTableWidget): cellExited = QtCore.pyqtSignal (Int, Int) itemExited = QtCore.pyqtSignal (QtWidgets.
Leon Brasero
1

голосов
1

ответ
30

Просмотры

Как открыть PyQt приложение из отдельного процесса питона

Мне было интересно, если это возможно, чтобы открыть приложение PyQt (с QMainWindow) из отдельного процесса питона, запустив что-то вроде команды подпроцесса. Моя PyQt приложение является исполняемым из командной строки, как PyQT_App.py arg1 кода для запуска приложения достаточно долго, но основная структура Защиты call_app (arg1): класс AppWindow (QtGui.QMainWindow): Защита __init __ (я, arg1): делать такие вещи ... ... приложение = QtGui.QApplication ([]) = выигрыш AppWindow (arg1) печать sys.exit (app.exec_ ()) возвращает приложение, если __NAME __ == "__ main__": call_app (arg1) и я надеялся запустить импорт подпроцесс subprocess.Popen ([ «PyQT_App.py», «arg1»]) Если бы я это сделать и проверить системный монитор, кажется, что приложение было запущено, но главное окно не появляется. Есть очевидная причина, это не работает, что мне не хватает? Есть простое решение?
user3235916
1

голосов
1

ответ
2.4k

Просмотры

ModuleNotFoundError: модуль не назван «PyQt5.QtWebKit»

Я новичок в Python и играл с ней и столкнулись с проблемой с помощью PyQt5. Может кто-то пожалуйста, объясните мне, что это означает: ModuleNotFoundError: Нет модуль с именем «PyQt5.QtWebKit». На самом деле, я думаю, я понимаю, что это значит, но как я могу это исправить? Я нашел решение в другом форуме, но все это сказало, были QtWebKit нужно быть скомпилированы в PyQt5. Я не понимаю, что это значит и как это сделать. Я должен уточнить, говоря, я установил PyQt5 и я побежал некоторые примеры скриптов с только простыми окнами с несколькими виджетами. Я начал получать эту ошибку, пытаясь использовать код из учебника по созданию веб-браузер с PyQt5. Мне очень нравится язык питона, и я хотел, чтобы преобразовать проект от доступа к питону. В проекте Access, У меня есть несколько элементов управления WebBrowser, и я искал GUI инструментарий, который позволил бы мне сделать то же самое с помощью питона. Я думал, что PyQt5 будет работать, но я продолжаю получать ModuleNotFoundError. Я использую Windows, 8.1, если это делает разницу.
sgldjj
1

голосов
1

ответ
174

Просмотры

как получить путь к файлу существующего в QListWidget

У меня есть код, который отображать элементы (файлы) в QListWidget, где пользователь нажимает на элемент и система отображения его содержимого. Пример: C: \ Users \ тест \ Desktop \ New Microsoft Word Document.docx ==> строка 0 C: \ Users \ тест \ Desktop \ test_arabic.docx ==> строка 1 при попытке распечатать результат система отображения правильно номер строки, но неверный путь, где отображается первый выбранный путь к файлу, что вы выбираете следующий код: защиту FileListSelected (Я): # Функция, чтобы выбрать нужный файл из списка в левой панели ListIterator = диапазон (self.listWidgetPDFlist.count ( ) -1) для индекса в ListIterator: р = pathlib.Path (self.fullPath) печать ( "ФАЙЛ ВЫБОРОЧНЫЕ это р ==> {}" формат (р)) oneDir = os.path.join (* р.. части [: - 2]) печать (»
pydev
1

голосов
1

ответ
54

Просмотры

начало PyQt5.QThread (в) методе не выполняет прогон () МЕТОД

им начинает изучать PyQt5 и QThread и им пытаются сделать простую реализацию QThread, я знаю, что это очевидно, но я не могу получить, почему это dosen't работать мой код: от PyQt5 импорта QtCore класса WorkingThread (QtCore.QThread): Защита __init __ (Я): супер () .__ INIT __ () Защита работать (самостоятельно): печать ( "! работа ") класс MainWindow (QtCore.QObject): worker_thread = WorkingThread () Защиты заниматься (себя): печатью (" вызов старта" ) self.worker_thread.start (), если __name__ == "__main__": главная = MainWindow () main.engage () выход: вызов старт процесса закончил с кодом выхода 0 нет "работать!" печатные
infantry
1

голосов
1

ответ
99

Просмотры

как увеличить высоту строк заголовка этикетки и размера шрифта пунктов строки в QTableWidget в PyQt4

Здесь я хочу, чтобы увеличить высоту строк headerlabel и размера шрифта из элементов ячейки. В моем коде я использую метод self.table.setRowHeight (), но он не работает. Поэтому, пожалуйста, скажите мне их любой способ, чтобы увеличить высоту строк заголовка этикетки и размера шрифта элементов клеток. данный ниже мой код: импорт SYS из PyQt4 импорта QtGui, QtCore ROUNDED_STYLE_SHEET1 = "" "QPushButton {фонового цвета: зеленый, цвет: белый, границы стиля: боковик; границы-ширина: 4px; границы радиуса: 15px; границы -Цвет: нет; шрифта: жирный 12px; мин-ширина: 10em; обивка: 10px;} "" "ОВАЛЬНОЕ = """ QPushButton {позиция: относительная; ширина: 50px; высота: 30px; поле: 20px 0; фон: синий цвет; граница радиуса: 48% / 25%; цвет: белый; шрифта: жирный 10px; } "" "Класс Пример (QtGui.QWidget): Защита __init __ (сам): супер (пример, сам) .__ INIT __ () self.initUI () Защиты initUI (Self): self.label = QtGui.QLabel (" Счет Последовательного Номер-39" , самость) self.label.setStyleSheet ( "шрифт: жирный шрифт 20pt AgentOrange") self.label.move (10,20) self.line_edit = QtGui.QLineEdit (само) self.line_edit.move (900,15 ) self.line_edit.resize (300,30) self.btn1 = QtGui.QPushButton ( "подключиться", самостоятельная) self.btn1.setStyleSheet (ROUNDED_STYLE_SHEET1) self.btn1.move (1200,10) self.btn2 = QtGui.QPushButton ( "назад", сам) self.btn2.move (70200) self.btn3 = QtGui.QPushButton ( "Reset Form", самостоятельный) self.btn3.move (140200) self.btn3.setStyleSheet (»
gowthami
1

голосов
0

ответ
66

Просмотры

Как программно обновить значение в Traitsui?

Я пытаюсь обновить значение переменной Traitsui в соответствии с определяемым пользователем переменным заданными через интерфейс PyQt. Это, кажется, как-то так просто, но мне потребовалось множество часов в настоящее время. Функции печати, которые я использовал здесь, показывают, что переменная черты обновляется, но фактическое окно черты не обновляется, чтобы соответствовать. импорт SYS, Os из pyface.qt импорта QtGui, QtCore os.environ [ 'ETS_TOOLKIT'] = '' qt4 из traits.api импортных HasTraits, Instance, on_trait_change, Int из traitsui.api импорта View, Item, VGroup класса Traits_Scene (HasTraits ): traitsui_value = 0 Защита update_traitsui_value (Я): Traits_Scene.traitsui_value = P1.pyqt_value печать 'значение Traitsui =', вид self.traitsui_value = вид (VGroup (пункт ( 'traitsui_value', упругий = False,
ees
1

голосов
0

ответ
48

Просмотры

Список PyQt5 и таймер

tldr: Я хочу, чтобы добавить таймер, который может быть запущена с кнопки пуска / останова и сброса с другой кнопкой на список-подобный интерфейс. Я работаю на создание списка с таймерами. Цель состоит в том, чтобы следить за количество времени, затраченного на конкретных задачах / пунктах. На данный момент у меня есть функциональный список и кнопку, которая появляется диалоговое окно, позволяющее пользователю ввести строку, которая заполнит список. Я ищу идеи о том, как включить таймер. Может быть, это может быть список два столбца. Тогда мы могли бы иметь логический тип для таймера, чтобы сделать паузу и запустить его. А может быть кнопка для сброса таймера. Позже я хотел бы данные таймера, чтобы быть стойкими, чтобы вы могли сохранить время после закрытия приложения. Вот возможный вид: Любая помощь с UI будет оценен как хорошо. Мой код здесь. импорт SYS из PyQt5.
Ali
1

голосов
0

ответ
42

Просмотры

QTableWidget соблюдать промежуток при калибровке к содержанию

Если у меня есть QTableWidget, и я установить продолжительность столбца ячейки с помощью setSpan, Qt размеров таблицы, как если содержимое ячейки полностью в первом столбце расширенной ячейки. от PyQt5 импорта QtWidgets, QtCore класса импорта SYS myMainWindow (QtWidgets.QMainWindow): Защита __init __ (Я): супер (myMainWindow, самостоятельно) .__ INIT __ () tableBoxWidget = QtWidgets.QWidget (сам) tableBox = QtWidgets.QHBoxLayout (tableBoxWidget) самостоятельно. setCentralWidget (tableBoxWidget) self.setMinimumWidth (750) tableBoxWidget.setContentsMargins (20,20,20,20) TestTable = QtWidgets.QTableWidget (tableBoxWidget) tableBox.addWidget (TestTable) testTable.setFocusPolicy (QtCore.Qt.NoFocus) testTable.setSelectionMode ( QtWidgets.QAbstractItemView.NoSelection) TESTTABLE.
buck54321
1

голосов
1

ответ
214

Просмотры

PyQt5 QFileDialog специально сохранить файл как файл питона

Я пишу простой графический интерфейс приложения для карточек. Пользователь создает флэш-карту, и они будут сохранены в список. Я хочу, чтобы сохранить только список файлов, так что пользователь может иметь несколько палуб и просто File-> открыть то, что они хотят. В мой непросвещенный мозг, я чувствую, сохраняя их в питон файл будет сделать весь процесс проще, предполагая, что я сделал что-то вдоль линий следующих по нагрузке: для с в filename.allCards: allCards.append (с) я попытался используя оба name.setNameFilters ([ "*. ру"]) и name.selectNameFilter ( "Python файлы (* .py)") не повезло. Так что теперь у меня есть в основном два вопроса. 1) это наиболее эффективный способ сделать это, и 2) если да, то мне не хватает, потому что даже когда я сохраняю после добавления. расширение пй вручную, по-прежнему сохраняет в текстовый файл? для справки здесь моя функция сохранения четкости saveFunc (сам): имя = QtWidgets.QFileDialog.getSaveFileName (самости, 'Сохранить файл', "Python файлы (* .py)") name.setNameFilters ([ "* р."]) name.selectNameFilter ( «Python файлы (* .py)») файл = открыт (имя, «ж»), который я называю в моем главном окне через меню действий. Вот весь импорт сценария ОС импорт SYS из PyQt5.QtWidgets импорта * #QApplication, QWidget, QPushButton из PyQt5.QtGui импорта * # QIcon из PyQt5.QtCore импорта pyqtSlot из PyQt5 импортных QtWidgets, QtCore импорт карточек из PyQt5.Qt импорта QPlainTextEdit из PyQt5.uic.Compiler.qtproxies импортировать QtGui класс App (QMainWindow): защиту __init __ (Я): супер () .__ INIT __ () self.title = я 'флэш-карты'. 'Сохранить файл', "Python файлы (* .py)") name.setNameFilters ([ "*. Ру"]) name.selectNameFilter ( "Python файлы (* .py)") файл = открыт (имя, 'W' ) #write списка четкости openFunc (я): имя = QtWidgets.QFileDialog.getOpenFileName (я, 'Открыть файл') файл = открыто (имя, 'г') с файлом: палубный = file.read () self.allCards. присоединять (file.allCards), если __name__ == '__main__': приложение = QApplication (sys.argv) ех = App () sys.exit (app.exec_ ()) карты является сценарий я просто написать класс для моего карта объекта. это просто: класс карта: Защита __init __ (я, FRONTSIDE, BACKSIDE): self.frontSide = FRONTSIDE self.backSide = BACKSIDE ([ "* Р"]) setNameFilters name.selectNameFilter ( "Python файлы (* .py)") файл = открыто (имя, 'ш') #write списка четкости openFunc (сам): имя = QtWidgets.QFileDialog. GetOpenFileName (я, 'Открыть файл') файл = открыт (имя, 'г') с файлом: колода = file.read () self.allCards.append (file.allCards), если __name__ == '__main__': приложение = QApplication (sys.argv) экс = App () sys.exit (app.exec_ ()) карты является сценарий я просто написать класс для моего объекта карты. это просто: класс карта: Защита __init __ (я, FRONTSIDE, BACKSIDE): self.frontSide = FRONTSIDE self.backSide = BACKSIDE ([ "* Р"]) setNameFilters name.selectNameFilter ( "Python файлы (* .py)") файл = открыто (имя, 'ш') #write списка четкости openFunc (сам): имя = QtWidgets.QFileDialog. GetOpenFileName (я, 'Открыть файл') файл = открыт (имя, 'г') с файлом: колода = file.read () self.allCards.append (file.allCards), если __name__ == '__main__': приложение = QApplication (sys.argv) экс = App () sys.exit (app.exec_ ()) карты является сценарий я просто написать класс для моего объекта карты. это просто: класс карта: Защита __init __ (я, FRONTSIDE, BACKSIDE): self.frontSide = FRONTSIDE self.backSide = BACKSIDE ) #Write списка четкости openFunc (я): имя = QtWidgets.QFileDialog.getOpenFileName (Я, 'Открыть файл') файл = открыто (имя, 'г') с файлом: палубный = file.read () self.allCards. присоединять (file.allCards), если __name__ == '__main__': приложение = QApplication (sys.argv) ех = App () sys.exit (app.exec_ ()) карты является сценарий я просто написать класс для моего карта объекта. это просто: класс карта: Защита __init __ (я, FRONTSIDE, BACKSIDE): self.frontSide = FRONTSIDE self.backSide = BACKSIDE ) #Write списка четкости openFunc (я): имя = QtWidgets.QFileDialog.getOpenFileName (Я, 'Открыть файл') файл = открыто (имя, 'г') с файлом: палубный = file.read () self.allCards. присоединять (file.allCards), если __name__ == '__main__': приложение = QApplication (sys.argv) ех = App () sys.exit (app.exec_ ()) карты является сценарий я просто написать класс для моего карта объекта. это просто: класс карта: Защита __init __ (я, FRONTSIDE, BACKSIDE): self.frontSide = FRONTSIDE self.backSide = BACKSIDE allCards), если __name__ == '__main__': приложение = QApplication (sys.argv) ех = App () sys.exit (app.exec_ ()) карты является сценарий я просто написать класс для моего объекта карты. это просто: класс карта: Защита __init __ (я, FRONTSIDE, BACKSIDE): self.frontSide = FRONTSIDE self.backSide = BACKSIDE allCards), если __name__ == '__main__': приложение = QApplication (sys.argv) ех = App () sys.exit (app.exec_ ()) карты является сценарий я просто написать класс для моего объекта карты. это просто: класс карта: Защита __init __ (я, FRONTSIDE, BACKSIDE): self.frontSide = FRONTSIDE self.backSide = BACKSIDE
Jesse Price
1

голосов
1

ответ
24

Просмотры

Adding custom widgets to a QScrollArea in pyqt5 does not make scrollbar appear

Пример, приведенный ниже, добавляет очень простой пользовательский pyqt5 виджет на QScrollArea. Когда я двигаю пользовательский виджет «от» площади области прокрутки, я бы ожидать, что полосы прокрутки должна появиться. Очевидно, что это не так. #! / USR / бен / python3 из PyQt5.QtWidgets импорт QMainWindow, QWidget, QApplication, QScrollArea из PyQt5.QtCore импорта QObject из PyQt5.QtGui импорта QPainter, QColor, QPen импорта SYS класс ExampleWidget (QWidget): Защита __init __ (я, родитель нет = None): супер () .__ INIT __ (родитель = родитель) Защиты paintEvent (я, е): QP = QPainter () qp.begin (сам) self.drawWidget (QP) qp.end () Защиты drawWidget (я, QP ): qp.setPen (QColor (255, 0, 0)) qp.setBrush (QColor (255, 0, 0)) qp.drawRect (0, 0, 100, 100) класс Пример (QMainWindow): Защита __init __ (сам ):
T-5
1

голосов
1

ответ
27

Просмотры

Изменение цвета основного интерфейса с библиотекой питона PyQt5

Приведенный ниже код изменяет цвет интерфейса, если он типа QWidget. Могу ли я изменить цвет интерфейса, если это Qmainwidow? Спасибо за помощь импорта SYS из PyQt5.QtWidgets импорта (QApplication, QMainWindow, QWidget, QVBoxLayout) # класса Wind (QMainWindow): # это то, что мне нужно класс Wind (QWidget): Защита __init __ (Я): метод #__init__ супер (Wind , сам) .__ INIT __ () self.scaleFactor = 0,0 self.widget = QWidget (сам) раскладка = QVBoxLayout (сам) layout.addWidget (self.widget) self.widget.setStyleSheet ( ""».QWidget {фонового цвета: RGB (0, 200, 0);} "" ") self.setWindowTitle (" первого окна ") self.resize (500, 400), если __name__ == '__main__':
user9201863
1

голосов
1

ответ
182

Просмотры

Foundry Nuke - Отображение анимированного значения на QLabel

Я в настоящее время пытаюсь отобразить значение в QLabel (QLineEdit будет работать тоже), основанное на NUKE (или майя) сроки. Я использую Nuke для запуска кода, и я хотел бы, чтобы отобразить значение, основанное на текущем кадре, чтобы отобразить что-то вроде этого: текущий кадр 1001. Если я изменяю к кадру 1002, я хотел бы QLabel изменить соответствующим образом. Есть способ сделать это ? импорт PySide.QtGui в QtGui импорта PySide.QtCore как QtCore DEF тест (): класс framePanel (QtGui.QWidget): супер (framePanel, самость) .__ __ INIT (Я): макет = QtGui.QVBoxLayout (само) self.label = QtGui .QLabel ( 'Это кадр 1001') layout.addWidget (self.label) framePanel = framePanel () framePanel.show () тест () Спасибо.
Roman
1

голосов
1

ответ
19

Просмотры

PyQt со встроенной Matplotlib - проблема фокусировки

Я хочу создать графический интерфейс с вводимыми пользователем на левой стороне и участки справа. Кнопка Применить следует обновить участки, которые зависят от входов. Сейчас кнопка просто очищает TextLabel. Я сделал основной макет с Qt Desginer и пытался реализовать этот пример. Без участков, сосредоточив внимание различные QLineEdit с мышью работала, однако с заговорами фокусировки работают только с вкладкой клавиатуры, но не нажав больше. захватить ли в MyMplCanvas класс фокус мыши или почему она не работает? Вот код: # / USR / бен / окр python3 # - * - кодирование: UTF-8 - * - от __future__ импорта unicode_literals импорта случайных импорта Matplotlib # Убедитесь, что мы используем QT5 matplotlib.use ( 'Qt5Agg') от PyQt5 импорта QtCore, QtWidgets из Numpy импорта arange, грех, пи от matplotlib.backends.
LucaTony
1

голосов
0

ответ
26

Просмотры

Sub Class QAbstractCameraController PyQt

Я не могу подклассов QAbstractCameraController в PyQt3D. Является ли это ошибка? Класс FemapCameraController (QAbstractCameraController): Защита __init __ (я, rootEntity): супер (FemapCameraController, самость) .__ INIT __ (rootEntity) ... TypeError: PyQt5.Qt3DExtras.QAbstractCameraController не может быть создан или суб-классифицирован
Jan
1

голосов
1

ответ
37

Просмотры

Qt GUI внутри цикла?

То, что я хочу достичь, это цикл виджетов Qt. Простой пример: UI_dialog является QDialog и после того, как принял это откроет UI_mainwindow, который является QMainWindow. Существует кнопка в UI_mainwindow и если нажато, она закроет UI_mainwindow и вернуться к UI_dialog. То, что я сделал до сих пор: я пытался: создать в то время как цикл в QThread, который содержит два интерфейс объектов называют UI_dialog внутри UI_mainwindow (вида успех, но может привести к аварийному иногда для моего плохого дизайна)
newman
1

голосов
1

ответ
83

Просмотры

Как обновить содержание QWidget в?

Существует QWidget, который вызывается с помощью кнопки «Пуск» в главном виджете. Это показывает, какой-то текст, который должен обновляться каждую минуту в течение работы QWidget. Как я могу сделать эту бесконечность обновляя в этом коде? Класс ExampleWidget (QWidget): Защита __init __ (самостоятельно, родитель = None): супер () .__ INIT __ () self.setWindowTitle ( 'Пример виджет ScrollArea') self.initUi () Защиты initUi (сам): Зона = QScrollArea (сам) area.setWidgetResizable (True) self.scrollAreaWidgetContents = QLabel (some_text, самость) кнопка area.setWidget (self.scrollAreaWidgetContents) = QPushButton ( "Закрыть") button.clicked.connect (self.goMainWindow) layoutV = QVBoxLayout () layoutV.addWidget (область) layoutV.addWidget (кнопка) самостоятельно.
1

голосов
1

ответ
54

Просмотры

PyQt5 QScrollArea не прокручивается, изменяет размеры элементов вместо

У меня есть проблема, что полностью сводит меня с ума. Я пишу приложение GUI на Python с использованием PyQt5. Мое приложение состоит из нескольких QGroupBoxes, которые становятся видимыми и не видимыми как пользователь переключается между ними. Один из QGroupBoxes содержит QScrollArea, в котором размещены еще QGroupBoxes. Как пользователь добавляет информацию к применению, новые QGroupBoxes могут быть добавлены, так QScrollArea должен позволять просматривать все из них, когда есть слишком много элементов добавлены. Таким образом, структура элементов: QGroupBox => QScrollArea => => QScrollAreaWidgetContents => => => QVBoxLayout => => => => QGroupBox => => => => => QFormLayout => => => = > QGroupBox => => => => => QFormLayout Однако, несмотря на то, я поместил внутренние QGroupBoxes внутри вертикального расположения, а затем внутри одного QScrollAreaWidgetContents, QScrollArea не показывает никаких полос прокрутки, но вместо этого изменяет внутренние элементы, так это выглядит. Моя проблема может быть выражена в следующем примере: класс Ui_MainWindow (объект): Защита setupUi (я, MainWindow): MainWindow.setObjectName ( "MainWindow") MainWindow.resize (415, 213) self.centralwidget = QtWidgets.QWidget (MainWindow) self.centralwidget.setObjectName ( "centralwidget") self.groupBox = QtWidgets.QGroupBox (self.centralwidget) self.groupBox.setGeometry (QtCore.QRect (0, 0, 801, 601)) self.groupBox.setObjectName ( "Groupbox" ) self.scrollArea = QtWidgets.QScrollArea (self.groupBox) self.scrollArea.move (10, 30) self.scrollArea.setFixedWidth (380) self.scrollArea.setMinimumHeight (160) self.scrollArea. добавляя интервал в вертикальную компоновку и так далее, но до сих пор QScrollArea игнорирует их и сжимает внутренние элементы. Я застрял и не получил ни малейшего представления о том, как решить мою проблему. Пожалуйста, помогите мне.
Anton
0

голосов
0

ответ
6

Просмотры

How to tell if two QPushButtons have been pressed (Python)

Мне нужно вызвать функцию-член, когда обе мои объекты QPushButton была нажата. Я не могу найти способ, чтобы следить за, если они были нажаты. Вызвать функцию, когда любой из кнопок нажата, используя ... clicked.connect (FUNC) и в этой функции я попытался: 1) возвращает значение, 2) обновить переменную-член. Ниже я показал, как я пытался создать и обновить переменную-член и использовать условное, чтобы увидеть, если обе переменные были правдой, так что я мог бы назвать свою следующую функцию. Защиту __init __ (я, родитель = None): супер (MorphingApp, самость) .__ INIT __ (родитель) self.setupUi (сам) self.startIm = None self.endIm = None self.initialState () Защита InitialState (я): я. btn_loadStart.clicked.connect (self.loadImageS) self.btn_loadEnd.clicked.connect (self.loadImageE), если (self.startIm истинна и self.endIm является True): self.loadedState () Защита InitialState (Я): self.startIm = True Защиту loadImageE (я): self.endIm = True Мои функции, конечно, делать вещи, но я удалил части, которые были неуместны. Когда я запускаю GUI я могу загрузить изображения, но функция, которая должна вызываться после обе кнопки Утопленного не называются. Я знаю это, потому что состояние GUI не меняется, так как я намерен. Это мой первый раз, отправляя вопрос так, дайте мне знать, как улучшить :) Я знаю это, потому что состояние GUI не меняется, так как я намерен. Это мой первый раз, отправляя вопрос так, дайте мне знать, как улучшить :) Я знаю это, потому что состояние GUI не меняется, так как я намерен. Это мой первый раз, отправляя вопрос так, дайте мне знать, как улучшить :)
1

голосов
1

ответ
23

Просмотры

Как обрабатывать данные после чтения из QIODevice.read ()?

Это мой первый раз, чтобы задать вопрос, если есть что-то я не так, пожалуйста, скажите мне, я буду признателен. Я использую QWebEngineUrlSchemeHandler для пользовательского URL, и я хочу использовать QFile открыть файл JavaScript для тестирования. Во-первых, если я просто использовать QFile ( «ken.js») Окно может открыть JavaScript, но если я использую мои пользовательские QFile, я понятия не имею, как обрабатывать данные после того, как я прочитал от QIODevice.read (). Я хочу знать, что мне нужно сделать, чтобы окно можно было открыть JavaScript после того как я прочитал данные из QIODevice.read (). Пожалуйста, дайте мне что-нибудь предлагает, спасибо. Вот мой полный код. Класс TestQFile (QtCore.QFile): Защита __init __ (я, Filename): супер () .__ INIT __ () self.setFileName (Filename) self.open (self.ReadOnly) self.data = B '' в то время как верно: receivedData = я ,
s105321521
1

голосов
1

ответ
84

Просмотры

PyQt5 QTextBrowser - setText - Alignment issue?

Я пытаюсь сделать простой графический интерфейс консоли с помощью PyQt5. На попытке напечатать текст, используя QTextBrowser - SetText, он теряет выравнивание и выглядит плохо. но текст выравнивается в моей питона консоли Я использую функцию SetText для отображения кадра данных. Об изменения оправдаться параметром df.to_string (), я могу видеть измененное выравнивание в консоли питона, но это не отражается на моей Qt консоли. Код: импорт SYS из GUI_4 импорта Ui_MainWindow из PyQt5 импорта QtCore, QtGui, QtWidgets импортировать окно New_Read_Map_File DEF (): приложение = QtWidgets.QApplication (sys.argv) MainWindow = QtWidgets.QWidget () метка = QtWidgets.QTextBrowser (MainWindow) этикетка. setStyleSheet ( 'цвет: синий') MainWindow.setGeometry (600150800800) label.setGeometry (10,10,780,780) GetData () метка.
pawan kumar

Просмотр дополнительных вопросов