QT开发中文网

void CProjectList::slot_RightButtonClicked(QTreeWidgetItem *item, int column) { slot_Right_Light(item, column); // 只针对鼠标右键 if(qApp->mouseButtons() == Qt::RightButton){ QTreeWidget* tree = item->treeWidget(); // 获取当前item所在的QTre...

根据你提供的代码,你可能会遇到样式不生效的问题。这是因为在多次调用menu->setStyleSheet()时,后面的样式设置会覆盖前面的设置。解决方法是将所有需要应用的样式合并成一个字符串,然后一次性设置给菜单。

请尝试以下修改:

void CProjectList::slot_RightButtonClicked(QTreeWidgetItem *item, int column)
{
    slot_Right_Light(item, column);

    // 只针对鼠标右键
    if(qApp->mouseButtons() == Qt::RightButton){
        QTreeWidget* tree = item->treeWidget(); // 获取当前item所在的QTreeWidget
        QString strTempFlag = tree->currentItem()->data(0, Qt::UserRole).toString();
        //根据信息个数判断是实验样品
        qDebug() <<"["<< __LINE__ << "] 鼠标右键点击的树状列表属性信息[" << strTempFlag << "]";
        QStringList list = strTempFlag.split("*");
        if(list.size() == 4) {
            m_iFunctionNo = list[0].toInt(); //功能序号
            m_strFunctionName = list[1]; //功能名称
            m_iExperimentNo = list[2].toInt(); //实验序号
            m_strExperimentName = list[3]; //实验名称

            QMenu* menu = new QMenu(tree);

            QString styleSheet =
                "QMenu {"
                    "color: #2C2C2C;"             // 默认字体颜色
                "}"
                "QMenu::item:hover {"
                    "color: #4780FF;"             // 鼠标滑过时的颜色
                "}"
                "QMenu::item:selected {"
                    "color: #FFFFFF;"              // 鼠标点击时的字体颜色
                    "background-color: #3F7AFF;"   // 鼠标点击时的背景颜色
                "}";

            menu->setStyleSheet(styleSheet);
            menu->addAction("添加样品", this, &CProjectList::slotAddItemInTreeSample);

            menu->exec(QCursor::pos());
        }
    }
}

这样,在一个setStyleSheet()调用中设置了所有需要的样式,应该能够使样式生效。记得将QMenuQMenu::item:hoverQMenu::item:selected选择器的样式都包含在同一个字符串中,并在最后一次调用中设置给菜单对象。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=9977

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?