Pesquisar na Comunidade
Mostrando resultados para as tags ''pyqt5''.
Encontrado 2 registros
-
Bom dia. Iniciei em Python há algumas semanas. não tive problemas até o momento. Estou desenvolvendo um projeto Python desktop utilizando qtDesigner e Pyqt5. O conflito que tive não encontrei solução. Tenho um login, que funciona e abre a "tela principal". a tela principal tem vários menus. Meu problema agora aparece. Eu criei uma tela para gerenciar permissões, porem quando eu clico para abir a tela, ela abre, porém bloqueada. eu só consigo mexer nela, depois que fecho a principal. Nao encontrei na internet nenhuma referência. Segue os códigos. Tela Principal import sys from principal import Ui_principal from PyQt5 import QtCore, uic from PyQt5.QtWidgets import QMainWindow, QApplication from loginAuth import * from permissoes import Ui_Permissoes class form_principal(QMainWindow,Ui_principal): def __init__(self, parent=None): super().__init__(parent) super().setupUi(self) self.mnuSair.triggered.connect(self.Sair) self.mnuPermissoesAcesso.triggered.connect(self.abrePermissoes) def abrePermissoes(self): from form_permissoes import form_permissoes self.per = form_permissoes() self.per.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # AlwaysOnTop self.per.show() self.per.setEnabled(True) # tentativa de forcar o habilitar ##Form permissoes import sys from principal import Ui_principal from PyQt5 import QtCore, uic from PyQt5.QtWidgets import QFrame, QMainWindow, QApplication, QDialog from loginAuth import * from fpermissoes import Ui_Frame class form_permissoes (QFrame, Ui_Frame): def __init__(self, parent=None): super().__init__(parent) super().setupUi(self) o arquivo que contem os componentes do formulario é o abaixo, que foi criado pelo QtDesiner e convertido usando o commando pyuic5 from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Frame(object): def setupUi(self, Frame): Frame.setObjectName("Frame") Frame.resize(619, 300) self.groupBox = QtWidgets.QGroupBox(Frame) self.groupBox.setGeometry(QtCore.QRect(10, 10, 591, 261)) self.groupBox.setObjectName("groupBox") self.treeWidget = QtWidgets.QTreeWidget(self.groupBox) self.treeWidget.setGeometry(QtCore.QRect(10, 20, 571, 231)) self.treeWidget.setObjectName("treeWidget") item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) item_1 = QtWidgets.QTreeWidgetItem(item_0) item_2 = QtWidgets.QTreeWidgetItem(item_1) item_3 = QtWidgets.QTreeWidgetItem(item_2) item_3 = QtWidgets.QTreeWidgetItem(item_2) self.retranslateUi(Frame) QtCore.QMetaObject.connectSlotsByName(Frame) def retranslateUi(self, Frame): _translate = QtCore.QCoreApplication.translate Frame.setWindowTitle(_translate("Frame", "Permissões")) self.groupBox.setTitle(_translate("Frame", "Menus")) self.treeWidget.headerItem().setText(0, _translate("Frame", "Menus")) __sortingEnabled = self.treeWidget.isSortingEnabled() self.treeWidget.setSortingEnabled(False) self.treeWidget.topLevelItem(0).setText(0, _translate("Frame", "Arquivo")) self.treeWidget.topLevelItem(0).child(0).setText(0, _translate("Frame", "Cadastro")) self.treeWidget.topLevelItem(0).child(0).child(0).setText(0, _translate("Frame", "Solos")) self.treeWidget.topLevelItem(0).child(0).child(0).child(0).setText(0, _translate("Frame", "PH")) self.treeWidget.topLevelItem(0).child(0).child(0).child(1).setText(0, _translate("Frame", "M.O")) self.treeWidget.setSortingEnabled(__sortingEnabled) Como eu disse, a tela abre, mas como se estivesse bloqueada.
-
Olá a todos(as)! Estava há 3 dias pesquisando sobre como resolver um problema que estava enfrentando em meu sistema, que consistia no seguinte: Implantar um Combobox com dados vindos do banco. Esse combobox deveria ser editável e apresentar os valores em seu popup suspenso. À medida em que o usuário fosse digitando, o autocomplete faria a busca em todos os valores já cadastrados e mostraria os compatíveis (procedimento até então comum em qualquer autocomplete). Todavia, o combobox só poderia perder o foco caso o texto inserido fosse exatamente igual a um dos valores existentes no popup, ou seja, não poderia ser inserido nada que já não estivesse cadastrado anteriormente e presente na lista de valores. Após muito pesquisar, cheguei a um resultado muito satisfatório que compartilho com vocês, visto que varri a internet inteira à procura desse código e não encontrei em lugar nenhum. PyQt5 é extremamente pobre em tutoriais, principalmente em português. Segue o código que poderá ajudar quem precise: from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QComboBox, QLineEdit, QCompleter from PyQt5.QtCore import QSize, Qt, QSortFilterProxyModel, QStringListModel class Ui_Autocomplete(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 200, 800, 600) self.setWindowTitle('Autocomplete com combobox') self.cboxEstado = QComboBox(self) self.cboxEstado.move(50, 50) self.cboxEstado.addItem("Acre") self.cboxEstado.addItem("Amazonas") self.cboxEstado.addItem("Amapá") self.cboxEstado.addItem("Pará") self.cboxEstado.addItem("Rondônia") self.cboxEstado.addItem("Roraima") self.cboxEstado.addItem("Tocantins") self.cboxEstado.addItem("Distrito Federal") self.cboxEstado.addItem("Goiás") self.cboxEstado.addItem("Mato Grosso") self.cboxEstado.addItem("Mato Grosso do Sul") self.cboxEstado.addItem("Alagoas") self.cboxEstado.addItem("Bahia") self.cboxEstado.addItem("Ceará") self.cboxEstado.addItem("Maranhão") self.cboxEstado.addItem("Piauí") self.cboxEstado.addItem("Pernambuco") self.cboxEstado.addItem("Paraíba") self.cboxEstado.addItem("Rio Grande do Norte") self.cboxEstado.addItem("Sergipe") self.cboxEstado.addItem("Paraná") self.cboxEstado.addItem("Rio Grande do Sul") self.cboxEstado.addItem("Santa Catarina") self.cboxEstado.addItem("Espírito Santo") self.cboxEstado.addItem("Minas Gerais") self.cboxEstado.addItem("São Paulo") self.cboxEstado.addItem("Rio de Janeiro") self.cboxEstado.setEditable(True) self.cboxEstado.completer().setCompletionMode(QCompleter.PopupCompletion) self.cboxEstado.completer().setFilterMode(Qt.MatchContains) self.cboxEstado.completer().setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.cboxEstado.focusOutEvent = self.pedeuFoco self.leRegiao = QLineEdit(self) self.leRegiao.move(250,50) self.leRegiao.resize(200, 22) def pedeuFoco(self,event): occur = 0 for i in range(len(self.cboxEstado)): if self.cboxEstado.currentText() == self.cboxEstado.itemText(i): occur = occur+1 if occur == 0: self.cboxEstado.lineEdit().setFocus() self.cboxEstado.lineEdit().selectAll() else: #Retira o cursor do widget QComboBox.focusOutEvent(self.cboxEstado,event) if __name__ == '__main__': import sys app = QApplication(sys.argv) mainWin = Ui_Autocomplete() mainWin.show() sys.exit(app.exec_())
- 1 resposta
-
- competer()
- filtro de resultados
- (e mais 4 )