第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

選擇項(xiàng)目并通過鼠標(biāo)單擊從 QlistWidget 更新 QLineedit?

選擇項(xiàng)目并通過鼠標(biāo)單擊從 QlistWidget 更新 QLineedit?

慕的地6264312 2023-05-09 09:52:20
通過從 QlistWidget 中選擇的項(xiàng)目更新 QLineEdit,根據(jù)我的意愿更新第一個(gè)框。但是第二個(gè)文本框和第三個(gè)文本框,沒有被所選項(xiàng)目更新。如果我們?yōu)榈诙€(gè)文本框第一個(gè)文本框和第二個(gè)文本框更新選擇項(xiàng)目。而對(duì)于第三個(gè),沒有反應(yīng)?如何解決文件:鼠標(biāo)點(diǎn)擊.pyimport sysfrom mouseclick_source import *textbox1_item = ["Red", "Green", "Blue", "Brown", "White", "Black", "Grey",                   "Dark Red", "Dark Green", "Dark Blue"]textbox2_item = ["Gold", "Silver", "Bronze", "Copper", "Iron", "Aluminium",                 "Taitanium"]textbox3_item = ["Indian Ocean", "Arabian Sea", "Bay of Bengal", "Black Sea",                  "Pacific Ocean"]class Mclick_sample_main(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("Mouse click Samples")        self.textbox1 = QLineEdit()        self.textbox2 = QLineEdit()        self.textbox3 = QLineEdit()        self.listbox1 = QListWidget()        self.listbox2 = QListWidget()        self.textbox1.setObjectName("textbox1")        self.textbox2.setObjectName("textbox2")        self.textbox3.setObjectName("textbox3")        self.listbox1.setObjectName("listbox1")        self.listbox2.setObjectName("listbox2")        vbox = QVBoxLayout(self)        vbox.addWidget(self.textbox1)        vbox.addWidget(self.textbox2)        vbox.addWidget(self.textbox3)        vbox.addWidget(self.listbox1)        QApplication.instance().focusChanged.connect(self.on_focusChanged)    def on_focusChanged(self):        fwidget = QApplication.focusWidget()        if fwidget is not None:            if fwidget.objectName() == "textbox1":                self.listbox1.clear()                self.listbox1.addItems(textbox1_item)                self.getdetails_1 = Sourcefile(self.textbox1, self.listbox1, self.listbox2)                #self.textbox1.textChanged.connect(self.getdetails_1.func_textbox_textchanged)                self.listbox1.itemClicked.connect(self.getdetails_1.listbox_clicked)                return True
查看完整描述

1 回答

?
BIG陽

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

問題可能是線路self.tbox1.setFocus()導(dǎo)致focusChanged信號(hào)再次發(fā)射。QListWidget 被清除并重新進(jìn)貨,因此沒有當(dāng)前項(xiàng)目文本,文本框設(shè)置為空字符串,給人一種“無響應(yīng)”的感覺。無論如何,我在嘗試運(yùn)行代碼時(shí)遇到了分段錯(cuò)誤,所以我不得不更改它。


所有的信號(hào)和槽連接都可以在主類中完成。從 QListWidget 中選擇一個(gè)項(xiàng)目可以用currentTextChanged信號(hào)檢測(cè)。在 focusChanged 上,保持指向最新聚焦的 QLineEdit 的指針?,F(xiàn)在,當(dāng)從列表小部件中選擇一個(gè)項(xiàng)目時(shí),您可以將文本設(shè)置為正確的文本框并重新對(duì)其應(yīng)用焦點(diǎn)。


import sys

from PyQt5.QtWidgets import *


textbox_items = {

    "textbox1": ["Red", "Green", "Blue", "Brown", "White", "Black", "Grey", 

                  "Dark Red", "Dark Green", "Dark Blue"],

    "textbox2": ["Gold", "Silver", "Bronze", "Copper", "Iron", "Aluminium", 

                "Taitanium"],

    "textbox3": ["Indian Ocean", "Arabian Sea", "Bay of Bengal", "Black Sea", 

                 "Pacific Ocean"]

    }


class Mclick_sample_main(QWidget):

    def __init__(self):

        super().__init__()


        self.setWindowTitle("Mouse click Samples")

        self.textbox1 = QLineEdit()

        self.textbox2 = QLineEdit()

        self.textbox3 = QLineEdit()

        self.listbox1 = QListWidget()

        self.listbox1.currentTextChanged[str].connect(self.update_textbox)


        self.textbox1.setObjectName("textbox1")

        self.textbox2.setObjectName("textbox2")

        self.textbox3.setObjectName("textbox3")

        self.listbox1.setObjectName("listbox1")


        vbox = QVBoxLayout(self)

        vbox.addWidget(self.textbox1)

        vbox.addWidget(self.textbox2)

        vbox.addWidget(self.textbox3)

        vbox.addWidget(self.listbox1)


        self.current_textbox = None

        QApplication.instance().focusChanged.connect(self.on_focusChanged)


    def on_focusChanged(self, old, new):

        if isinstance(new, QLineEdit) and new != self.current_textbox:

            self.current_textbox = new

            self.listbox1.clear()

            self.listbox1.addItems(textbox_items[new.objectName()])

                

    def update_textbox(self, text):

        if text:

            self.current_textbox.setText(text)

            self.current_textbox.setFocus()



def main():

    myapp = QApplication(sys.argv)

    mywin = Mclick_sample_main()

    mywin.show()

    sys.exit(myapp.exec_())



if __name__ == "__main__":

    main()


查看完整回答
反對(duì) 回復(fù) 2023-05-09
  • 1 回答
  • 0 關(guān)注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)