Ответы пользователя по тегу PyQt
  • Почему selectedText в QLineEdit возвращает пустую строку?

    Pyrym
    @Pyrym Автор вопроса
    Python 3 и PyQt5
    Рабочий вариант
    # Python 3. PyQt4
    # -*- coding: utf-8 -*-
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    
    # ГРАФИКА
    class Window(QtGui.QWidget):
        def __init__(self, parent=None):
            QtGui.QWidget.__init__(self, parent)
    
            self.resize(400, 150) # шир / выс окна  
            
            # ПЕРЕМЕННЫЕ КЛАССА
            #self.sel_text = ''
            self.sel_text_lst = []      
    
            # БЛОК РАЗМЕТКИ
            self.vbox = QtGui.QVBoxLayout()
            # ---
            self.pole_vvod = QtGui.QLineEdit('djf j.f ndsf ndk adf')
            self.pole_vvod.selectionChanged.connect(self.tx)
            self.vbox.addWidget(self.pole_vvod)
            # ---
            self.btn = QtGui.QPushButton('Пуск')
            self.btn.clicked.connect(self.on_click)
            self.vbox.addWidget(self.btn)
            # ---
            self.setLayout(self.vbox)
            # ---
    
        # ЛОГИКА
        def tx(self):
            self.sel_text = self.pole_vvod.selectedText()
            #print(self.sel_text)
            self.sel_text_lst.insert(0,self.sel_text)
            if len(self.sel_text_lst) > 2:
                self.sel_text_lst.pop(2)
            
        def on_click(self):
            #text = self.sel_text
            text = self.sel_text_lst[1]
            print(text)
    
    
    # КОНЕЦ
    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        window = Window()   
        window.show()
        sys.exit(app.exec_())
    Ответ написан
    Комментировать
  • Как перевести многомерный список в html-таблицу для QTextEdit?

    Pyrym
    @Pyrym Автор вопроса
    Python 3 и PyQt5
    Вот работающее решение:
    def on_click_7(self):
            def aps(i):
                i = ''.join(map(str, i))
                data.append(str(i))
            data = []
            self.pole_vivod.clear() # очистка поля вывода
            aps(['<table border ALIGN=CENTER WIDTH=95%>'])
            for i in d:
                aps(['<tr>'])
                for j in i:
                    aps(['<td ALIGN=CENTER>'+str(j)+'</td>'])                
                aps(['</tr>'])
            aps(['</table>'])      
            data = ''.join(map(str, data)) # объединение списка
            self.pole_vivod.append(data)
    Ответ написан
    Комментировать