我制作了一个在三个工具栏中有各种动作的用户界面。我试图通过鼠标按下并释放一个动作的字体为粗体。我知道如何使字体逐个加粗。但是我要在这三个工具栏中添加几十个动作。我怎么能这样做?谁能帮我? 非常感谢你。
主要功能确实使action1的字体变为粗体。
主要功能:
@ViewChildren('search') searchInput: QueryList<any>;
toggleSearch(){
this.showSearch = !this.showSearch;
if (this.showSearch){
console.log(this.searchInput.first); <= undefined
}
}
UI代码
<li class="search" *ngIf="showSearch" >
<i class="news-admin-icon news-admin-search"></i>
<input (blur)="toggleSearch()" #search (keyup)="searchNews(search.value)" type="text" placeholder="Search">
</li>
</li>
<li class="special" *ngIf="!showSearch" (click)="toggleSearch(search)">
<a href="#"><i class="news-admin-icon news-admin-search"></i> Search</a>
</li>
UI由PyQt5设计师创建。
答案 0 :(得分:0)
执行此操作的一种方法是连接到每个工具栏的actionTriggered
信号,该信号发送单击的操作。假设您一次只想要一个粗体操作,则可以使用此操作为当前操作启用粗体,并为上一个操作关闭粗体(如果有):
class window(QMainWindow):
def __init__(self, parent=None):
...
for toolbar in self.findChildren(QtWidgets.QToolBar):
toolbar.actionTriggered.connect(self.setBoldAction)
def setBoldAction(self, target, toolbar=None):
if toolbar is None:
toolbar = self.sender()
for action in toolbar.actions():
if not action.isSeparator():
font = action.font()
font.setBold(action is target)
action.setFont(font)
如果要以编程方式设置粗体操作,还可以执行以下操作:
self.setBoldAction(action, toolbar)