天道酬勤,学无止境

qt

How to know if QListWidgetItem is hidden by scroll?

Well, i'm newbie in Qt and i have a problem. I have a QListWidget in my UI with 7 items, just 4 items are showed and the other are showed after to use scrollbar. I want to show a arrow image above and below QListWidet than will show than there are more items to scroll. Ok, i can to see if a item is hidden, but just if it is hidden by setHidden() function. And when is it hidden by scroll? Can i see this in run time? Because the item is there, but scroll is hiding it, right? I searched some post about this here, but i did not find. Sorry my english, maybe be confused, but if someone to can help

2021-09-25 21:33:17    分类:问答    qt   qlistwidget   qscrollarea

组合框内的 Qicon(QIcon inside combobox)

问题 我想在我的 QComboBox 中的条目上包含一个“删除”图标,但我无法捕捉鼠标按下事件。 我试图在组合框上捕捉它,并尝试重新实现 QIcon 类以捕捉那里的鼠标按下。 没有骰子。 有人知道怎么做这个吗? -D 回答1 也许您可以重新实现QComboBox::mousePressEvent(QMouseEvent *e)并使用ex()和QComboBox::iconSize()来查找事件是否发生在图标上。 如果 Qt 样式决定在组合框中切换标签和图标位置,这将导致中断。 不知道这样可以吗? 回答2 我写的代码有点像这样,我想在组合框中放置一个树视图,当单击树上的复选框时我需要采取行动。 我最终做的是在组合框上安装一个事件过滤器来拦截鼠标点击,找出鼠标点击发生的位置,然后采取行动。 也许你可以用你的图标做同样的事情。 这是代码: bool TreeComboBox::eventFilter(QObject* object, QEvent* event) { if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonRelease) { QMouseEvent* m = static_cast<QMouseEvent*>(event); QModelIndex

2021-09-25 18:57:03    分类:技术分享    c++   qt   qcombobox   mousepress

Qt5 QSlider调色板在windows下没有效果(Qt5 QSlider color palette no effect under windows)

问题 我用 slider->setPalette(QPalette(mycolor, mycolor)); 为滑块着色(Qt5)。 在 Linux 下,这可以完美运行,但在 Windows 7 下,滑块看起来完全正常,颜色没有任何变化。 有没有办法在windows下获得彩色滑块? 回答1 你需要调用setAutoFillBackground(true)的QSlider为了这个工作: QPalette p; p.setColor(QPalette::Window, QColor(42, 42, 42)); slider->setAutoFillBackground(true); slider->setPalette(p); 作为替代方案,您可以使用QSS : slider->setStyleSheet("QSlider::groove:horizontal { background-color: red; } "); 对于水平滑块或 slider->setStyleSheet("QSlider::groove:vertical{ background-color: red; } "); 用于垂直滑块。 如果你想设置一个QColor你会想要做这样的事情: QColor myColor; myColor.setRgb(42, 42, 42); QString

2021-09-25 18:55:19    分类:技术分享    c++   windows   qt   user-interface   qt5

c++ qthread starting 2 threads concurrently

I have two threads One and Two. defined by their respective classes in the header file.I want to start the second thread when the first thread is started. creating and starting the second thread in the constructor of the first produced unexpected result. my header file "header.h" #ifndef HEADER #define HEADER #include <QtGui> class One:public QThread { public: One(); void run(); }; class Two:public QThread { public: Two(); void run(); }; #endif my class file "main.cpp" #include "header.h" #include<iostream> using namespace std; One::One() { /* the output just hangs at thread two and does not

2021-09-25 09:03:07    分类:问答    c++   multithreading   qt   concurrency   qthread

Invalid grant issue with Google OAuth authentication in Qt

I'm developing a Qt application and I want to use Google authentication for it. I created a Google API as explained in the following link: https://blog.qt.io/blog/2017/01/25/connecting-qt-application-google-services-using-oauth-2-0/ but I have a problem with it. It doesn't work in many cases and I get ProtocolInvalidOperationError(302) error for https://accounts.google.com/o/oauth2/token request URL in QOAuthHttpServerReplyHandler::networkReplyFinished(QNetworkReply *reply) method of Qt class. Note that I override QOAuthHttpServerReplyHandler::networkReplyFinished(QNetworkReply *reply) to get

2021-09-25 08:47:42    分类:问答    c++   qt   oauth   google-oauth

Qgraphicsscene troubles to get scenePos() inside a function

I have subclassed a qgraphicsscene and trying to get the mouse coords inside a "normal" function. I only get it working on "mouse involved" function. Sorry I'm amateur programmer. For exmample here scenePos() works: void mousePressEvent(QGraphicsSceneMouseEvent *event) { // qDebug() << "Custom scene clicked."; if(event->modifiers() == Qt::ControlModifier) { if(event->button() == Qt::LeftButton) { QPointF pos = {event->scenePos().x(), 70}; addChordnueve(pos); // crea 1 item at mouse x e y = 70 // } if(event->modifiers() == Qt::ControlModifier & event->modifiers() == Qt::ShiftModifier) { qDebug(

2021-09-25 07:25:06    分类:问答    qt   qt5   qgraphicsscene   qgraphicsitem

Keep Qt tooltip open

Windows tooltips do close after a certain amount of time (5-32 sec afaik). In Qt they seem to be set to 10 sec autoclose. Is there any way I can alter this behaviour? Qt docs remain silent about that. Maybe there are any custom tooltip classes around which I can make sticky? Qt Creator uses some sort of custom ToolTips for debugging. Thanks!

2021-09-25 03:50:50    分类:问答    qt   tooltip

qmake 没有找到一些现有的库(qmake not finding some existing libraries)

问题 在 Qt Creator 中将两个库(不是我制作的)包含到我的(纯 C)项目中时遇到问题(在 Linux Ubuntu 上使用 qmake + GCC)。 我知道,要包含一个库,请使用LIBS指令,如this SO answer中所述; 我已经通过这种方式成功地在 Linux 和 Windows 中插入了库。 更重要的是,在同一个有问题的项目中,我有两个成功插入的库。 但是现在我在同一个项目中包含这两个其他库时遇到了问题。 其中一个库是 C6RUN,两个处理器之间的对话需要,在库的文件夹中有一个/bin和一个/lib文件夹; 第一个有一些没有扩展名的文件(它们不是 .a 或 .lib),而第二个在两个子文件夹中有一组 .a 。 另一个库位于一个文件夹中,其中包含一个/lib子文件夹,其中包含一个 .lib。 他们俩都在 Eclipse 中的一个项目中 100% 工作(因此不涉及 qmake/Qt Creator)。 我提到了第一个库的/bin文件夹,因为在与基于 Eclipse 的项目相关的 Makefile 中,尽管不是正式的库文件,但引用了它的两个文件。 在尝试链接 .pro 中的两个库时,我和往常一样执行完全相同的操作:添加带有-L的路径以及带有-l的库名称。 当我尝试使用这两个库执行此操作时,会发生错误。 接下来是操作+结果列表(实际上我什至尝试了其他一些选项

2021-09-25 03:27:18    分类:技术分享    c   qt   compiler-errors   libraries   qmake

Extract data from QTableView

I have a QTableView instance limited to a single row selection. I don't want to care about what cell the user presses, but it should always extract the data in (selectedRow,0). So far I am doing the following: QModelIndexList indices = _ui->_tbl->selectionModel()->selection().indexes(); QModelIndex id = indices.at(0).sibling(indices.at(0).row(),0); Is there a better way?

2021-09-25 02:46:02    分类:问答    c++   qt

如何使用 QXmlStreamWriter 在 XML 文件中添加节点?(how Adding a node in an XML file with QXmlStreamWriter?)

问题 我用 QXmlStreamWriter 创建了一个 xml 文件,然后我想每次在关闭 xml 文件之前添加一个块。 但是,我想要做的是将块添加到带有 startDocument 的文件末尾,因此在每次添加时我都有一个 XML 标头,为此我在读取文档时出错,程序读取第一个块并当它进入第二个块时,它向我显示“xml声明不在文档层”这是我的文件: <?xml version="1.0" encoding="UTF-8"?> <Fiche_Du_Patient> <INFORMATIONS_DU_PATIENT> <Hopital>a </Hopital> <Num_dossier>b</Num_dossier> <Nom_et_prenom>c</Nom_et_prenom> <Date_de_naissance>11111</Date_de_naissance> <Sex>F </Sex> <Age>26</Age> <Date_examen>22222</Date_examen> <Medecin_traitant></Medecin_traitant> <Rapport></Rapport> </INFORMATIONS_DU_PATIENT> <NUMERO_SLICE> <Num_Slice>1</Num_Slice> <COORDONEES> <X1>7.32896<

2021-09-25 02:25:22    分类:技术分享    c++   xml   qt