2015-11-26 68 views
0
相似的背景

如何選擇某個項目作爲某種當前細胞背景的混合時的背景?Qt - 使選擇背景具有與項目

默認的商品選擇的背景是藍色的,並說,如果我的手機是紅色的,那麼我想它是紅色略少不透明度:

Example image of how it is

Example image of how I'd like it to be

我有嘗試設置的顏色是透明的:

setStyleSheet("selection-background-color: transparent") 

並且還帶有不透明度1%RGBA特徵:

setStyleSheet("selection-background-color: rgba(255, 255, 255, 1)") 

但無論是保留了原有的顏色

回答

1

這個例子會給你一些見解如何與tablewidgets和項目

import sys 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 

data = {'col1':['red','blue','green']} 

class MyTable(QTableWidget): 
    def __init__(self, data, *args): 
     QTableWidget.__init__(self, *args) 
     self.data = data 
     self.setmydata() 
     self.resizeColumnsToContents() 
     self.resizeRowsToContents() 
     self.setStyleSheet("""QTableView::item:focus 
      { 
       selection-background-color: rgba(255, 0, 0, 128); 
      }""") 


    def setmydata(self): 
     horHeaders = [] 
     for n, key in enumerate(sorted(self.data.keys())): 
      horHeaders.append(key) 
      for m, item in enumerate(self.data[key]): 
       newitem = QTableWidgetItem(item) 
       self.setItem(m, n, newitem) 
       colorVal = "Qt.%s" % item 
       self.item(m, n).setBackground(eval(colorVal)) 
     self.setHorizontalHeaderLabels(horHeaders) 

def main(args): 
    app = QApplication(args) 
    table = MyTable(data, 3, 1) 
    table.show() 
    sys.exit(app.exec_()) 

if __name__=="__main__": 
    main(sys.argv) 
+0

謝謝你的回答來管理。仔細觀察,我想你可能誤解了我的問題。您發佈的代碼看起來像是將單元格背景設置爲任何單元格值(「紅色」),而後面的內容是將選擇背景(您在CSS中保持不變)設置爲當前單元格背景的混合。我承認我完全不瞭解您的代碼(我正在使用qt5),請隨時糾正我! – Lobstw