2

i am trying to highlight the line in the QTextEdit upon pressing ^ and v button to scroll up and down, and print selected item upon enter / selection.

Below is the code snippet. I am unable to get how to highlight items.

#!/usr/bin/python

""" Imports """
import sys
from PyQt4 import QtGui, QtCore
import sys, time
from PyQt4.QtCore import QSize, pyqtSignal

""" Globals """
global topTxt, midTxt, endTxt
global powerOpt, AlrmSil, bootC
global btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9
global btn0,btnDot,btnBK,btnClr,btnMain,btnChg,btnOpt,btnClrTot,btnPWR,btnAlrm,btnStrt,btnStop
global highVal, lowVal
global selectionTxt
highVal = 55
lowVal = 10
""" Globals Initialization"""
powerOpt = 0
AlrmSil = 0
class trial(QtGui.QMainWindow):
    sigTextButtonClicked = pyqtSignal(QtCore.QString)
    sigTextUpdated = pyqtSignal(QtCore.QString)

    def __init__(self):
        """ Constructor """
        super(trial, self).__init__()        
        self.initKey()
        self.initText()
        self.showUI()

    def disableBt(self):
        global btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9
        global btn0,btnDot,btnBK,btnClr,btnMain,btnChg,btnOpt,btnClrTot,btnPWR,btnAlrm,btnStrt,btnStop
        btn1.setEnabled(False)
        btn2.setEnabled(False)
        btn3.setEnabled(False)
        btn4.setEnabled(False)
        btn5.setEnabled(False)
        btn6.setEnabled(False)
        btn7.setEnabled(False)
        btn8.setEnabled(False)
        btn9.setEnabled(False)
        btn0.setEnabled(False)
        btnDot.setEnabled(False)
        btnBK.setEnabled(False)

    def enableBt(self):
        global btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9
        global btn0,btnDot,btnBK,btnClr,btnMain,btnChg,btnOpt,btnClrTot,btnPWR,btnAlrm,btnStrt,btnStop
        btn1.setEnabled(True)
        btn2.setEnabled(True)
        btn3.setEnabled(True)
        btn4.setEnabled(True)
        btn5.setEnabled(True)
        btn6.setEnabled(True)
        btn7.setEnabled(True)
        btn8.setEnabled(True)
        btn9.setEnabled(True)
        btn0.setEnabled(True)
        btnDot.setEnabled(True)
        btnBK.setEnabled(True)




    def initKey(self):   
        """   This function initializes the buttons in the UI """ 
        global btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9
        global btn0,btnDot,btnBK,btnClr,btnMain,btnChg,btnOpt,btnClrTot,btnPWR,btnAlrm,btnStrt,btnStop
        btn1 = QtGui.QPushButton("1", self)
        btn1.setFixedWidth(30)
        btn1.move(650, 50)
        # btn1.setEnabled(False)



        btn2 = QtGui.QPushButton("2", self)
        btn2.setFixedWidth(30)
        btn2.move(690, 50)
        # btn2.setEnabled(False)

        btn3 = QtGui.QPushButton("3", self)
        btn3.setFixedWidth(30)
        btn3.move(730, 50)

        btn4 = QtGui.QPushButton("4", self)
        btn4.setFixedWidth(30)
        btn4.move(650, 100)

        btn5 = QtGui.QPushButton("5", self)
        btn5.setFixedWidth(30)
        btn5.move(690, 100)

        btn6 = QtGui.QPushButton("6", self)
        btn6.setFixedWidth(30)
        btn6.move(730, 100)

        btn7 = QtGui.QPushButton("7", self)
        btn7.setFixedWidth(30)
        btn7.move(650, 150)

        btn8 = QtGui.QPushButton("8", self)
        btn8.setFixedWidth(30)
        btn8.move(690, 150)

        btn9 = QtGui.QPushButton("9", self)
        btn9.setFixedWidth(30)
        btn9.move(730, 150)

        btnBK = QtGui.QPushButton("Back", self)
        btnBK.setFixedWidth(40)
        btnBK.move(650, 200)

        btn0 = QtGui.QPushButton("0", self)
        btn0.setFixedWidth(30)
        btn0.move(690, 200)

        btnDot = QtGui.QPushButton(".", self)
        btnDot.setFixedWidth(30)
        btnDot.move(730, 200)

        btnUp = QtGui.QPushButton("^", self)
        btnUp.setFixedWidth(30)
        btnUp.move(450, 50)

        btnDwn = QtGui.QPushButton("v", self)
        btnDwn.setFixedWidth(30)
        btnDwn.move(450, 200)

        btnEnt = QtGui.QPushButton("Enter", self)
        btnEnt.setFixedWidth(30)
        btnEnt.move(450, 125)


        # Below codes are for button press handling
        btn1.clicked.connect(self.digitClicked)            
        btn2.clicked.connect(self.digitClicked)
        btn3.clicked.connect(self.digitClicked)            
        btn4.clicked.connect(self.digitClicked)
        btn5.clicked.connect(self.digitClicked)            
        btn6.clicked.connect(self.digitClicked)
        btn7.clicked.connect(self.digitClicked)            
        btn8.clicked.connect(self.digitClicked)
        btn9.clicked.connect(self.digitClicked)            
        btn0.clicked.connect(self.digitClicked)

        btnDot.clicked.connect(self.digitClicked)
        btnBK.clicked.connect(self.digitClicked)

        btnUp.clicked.connect(self.selectUp)
        btnDwn.clicked.connect(self.selectDown)
        btnEnt.clicked.connect(self.selected)

        # btnClr.clicked.connect(self.digitClicked)

    def selectUp(self):
        print "up pressed"
    def selectDown(self):
        print "down pressed"
    def selected(self):
        print "selected"

    def initText(self):
        """ This portion initializes the Display of the UI, which is in black and green color """
        global topTxt, midTxt, backTxt, midTxtTab

        topTxt = QtGui.QTextEdit("", self)
        topTxt.setFixedWidth(350)
        topTxt.setFixedHeight(30)
        topTxt.setReadOnly(True)
        topTxt.setStyleSheet('QTextEdit {background-color: #8b8989; color: #000000;}')
        topTxt.move(50, 50)
        topTxt.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)

        topTxt.setFontPointSize(10)  
        topTxt.setFontWeight (100) 
        topTxt.setAlignment(QtCore.Qt.AlignCenter)
        topTxt.insertPlainText("Select Department")


        midTxt = QtGui.QTextEdit("", self)
        midTxt.setFixedWidth(350)
        midTxt.setFixedHeight(120)
        midTxt.setReadOnly(True)
        midTxt.setStyleSheet('QTextEdit {background-color: #ffffff; color: #000000;}')
        midTxt.move(50, 80)
        midTxt.setFrameStyle(QtCore.Qt.FramelessWindowHint)
        midTxt.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)


        midTxtTab = QtGui.QTextEdit("", self)
        midTxtTab.setFixedWidth(150)
        midTxtTab.setFixedHeight(120)
        midTxtTab.setReadOnly(True)
        midTxtTab.setStyleSheet('QTextEdit {background-color: #ffffff; color: #000000;}')
        midTxtTab.move(105, 80)
        midTxtTab.setFrameStyle(QtCore.Qt.FramelessWindowHint)
        midTxtTab.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)




        midTxtTab.setFontPointSize(10)
        midTxtTab.setAlignment(QtCore.Qt.AlignCenter)
        midTxtTab.insertPlainText("\n\naaaaaa\n"
                                "bbbbbbb\n"
                                "cccccc\n"
                                "ddddddd\n")
        midTxtTab.setDisabled(True)


        backTxt = QtGui.QTextEdit("", self)
        backTxt.setFixedWidth(55)
        backTxt.setFixedHeight(30)
        backTxt.setReadOnly(True)
        backTxt.setStyleSheet('QTextEdit {background-color: #87cefa; color: white;}')
        backTxt.move(50, 50)
        backTxt.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)

        backTxt.setFontPointSize(10)  
        backTxt.setAlignment(QtCore.Qt.AlignCenter)
        backTxt.insertPlainText("< Back")


    def showUI(self):
        """ everything initialized , now just show it """
        self.statusBar()        
        self.setGeometry(300, 300, 800, 300)
        self.setWindowTitle('trial')
        self.show()



    def digitClicked(self):
        print"here"
        global topTxt, midTxt, backTxt, midTxtTab
        midTxtTab.clear()

        sender = self.sender()

        self.sigTextButtonClicked.emit(sender.text())




    def midTxtInsert(self, txt,font, algmt):
        """ UI is split to three region, this is mid part which is in green """
        global topTxt, midTxt, endTxt        
        midTxt.setFontPointSize(font)        
        if algmt.upper() == "C":
            midTxt.setAlignment(QtCore.Qt.AlignCenter)
        elif algmt.upper() == "R":
            midTxt.setAlignment(QtCore.Qt.AlignRight)
        else:
            midTxt.setAlignment(QtCore.Qt.AlignLeft)  
        midTxt.insertPlainText(txt)
        self.update()         


    def topTxtInsert(self, txt, font, algmt):
        """ UI is split to three region, this is top part which is in black """
        global topTxt, midTxt, endTxt
        topTxt.setFontPointSize(font)
        if algmt.upper() == "C":
            topTxt.setAlignment(QtCore.Qt.AlignCenter)
        elif algmt.upper() == "R":
            topTxt.setAlignment(QtCore.Qt.AlignRight)
        else:
            topTxt.setAlignment(QtCore.Qt.AlignLeft)
        topTxt.insertPlainText(txt)
        self.update()  



def main():
    """ Function main """
    app = QtGui.QApplication(sys.argv)
    ex = trial()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
user2190483
  • 269
  • 1
  • 5
  • 22

1 Answers1

3

it can be done by,

 def selectDown(self):
        global topTxt, midTxt, backTxt, midTxtTab, list_
        print "down pressed"
        global blkNum 
        cursor = midTxtTab.textCursor()
        cursor.movePosition(QtGui.QTextCursor.Start)
        # cursor.movePosition(QtGui.QTextCursor.Down)

        tmp = cursor.blockFormat()
        tmp.setBackground(QtGui.QBrush(QtCore.Qt.yellow))
        cursor.setBlockFormat(tmp)
user2190483
  • 269
  • 1
  • 5
  • 22