我想创建一个设置小部件,我可以在其中选择一个日期。
因为创建 3 个 QLineEdits 来使用 QDate(int year, int month, int day) 调用 QDate-Constructor 不太好,所以我认为它会更好,例如,如果您可以按下“显示日历”按钮,您可以在其中选择日期。
但是我不想在新窗口中显示此日历,我想将其显示为“弹出窗口”(我不知道如何解释),例如您可能从 OpenOffice-Settings 中知道.
你知道如何实现吗?
我想写像这样的节点
<name>Peter</name>
Run Code Online (Sandbox Code Playgroud)
(带有开始和结束标记)到 QDomDocument 中。
当我创建 QDomElements 并将它们作为子元素附加到父元素时:
QDomElement node = doc.createElement("node");
parent.appendChild(node);
Run Code Online (Sandbox Code Playgroud)
它们被添加为
<node/>
Run Code Online (Sandbox Code Playgroud)
到父元素。父级会自动获取开始和结束标记,因此文件将如下所示:
<parent>
<node/>
</parent>
Run Code Online (Sandbox Code Playgroud)
但是我如何向我的节点添加一个值,使它看起来像我想要的(在开始和结束标记之间有值)。将一个新的 QDomElement 作为子节点添加到节点,它看起来就像 . 添加属性会显示为 ?
如果有人可以帮助我,那就太好了!谢谢!
嘿。我有一个 QListView,到目前为止我只知道如何使用已经给出的信号。当在列表中的项目 (QStandardListItem) 上按下 Enter 键时,我找不到任何信号。似乎也找不到任何 keyPressedEvents。
是否可以像这样将 QListView 与事件“挂钩”?如何?:)
谢谢
我有一个使用一个工作线程的简单应用程序。这个工作线程被启动并初始化下载管理器,它负责从网络下载文件。在我的主应用程序类中,我在 DownloadManager 完成之前发出的线程上有完成()信号。
我的问题是如何让工作线程等待 DownloadManager 完成其工作。
这是示例代码:
class Main
{
m_DownloadWorker = new DownloadWorker(this);
QObject::connect(pm_hotosDownloadWorker, SIGNAL(finished()), this, SLOT(DownloadWorkerFinished()));
m_DownloadWorker->Execute();
// do i need to do here something so the thread will wait ?
.....
void Main::DownloadWorkerFinished()
{
Log("DownloadWorkerFinished");
}
};
class DownloadWorker : public QThread
{
void DownloadWorker::Execute()
{
// do i need to do here somthing so the thread will wait ?
start();
}
void DownloadWorker::run()
{
// do i need to do here somthing so the thread will …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个简单的程序,它将所有窗口重定向到后台缓冲区(如复合管理器所做的那样),然后将它们写入像素图并保存到磁盘。但我收到了这个错误:
(.text.startup+0x5e):-1: error: undefined reference to `XCompositeRedirectSubwindows'
(.text.startup+0x171):-1: error: undefined reference to `XCompositeNameWindowPixmap'
:-1: error: collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
这是代码:
#include <QApplication>
#include <QDebug>
#include <X11/Xlib.h>
#include <QPaintDevice>
#include <QX11Info>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/extensions/Xcomposite.h>
#include <X11/extensions/Xrender.h>
#include <X11/extensions/Xdamage.h>
#include <QPixmap>
#include <QWidget>
int main( int argc, char *argv[] )
{
QApplication app( argc, argv );
app.setGraphicsSystem("native");
Picture frontBuffer;
XRenderPictFormat *format;
Window rootWindow;
int depth;
Display *dpy = XOpenDisplay( getenv("DISPLAY") );
rootWindow = XRootWindow( dpy, …Run Code Online (Sandbox Code Playgroud) 我正在尝试以QTableWidget不同的方式为行制作边框,但所有解决方案都没有响应我的要求。我想要的只是围绕整行绘制一个矩形。我有尝试QStyledItemDelegate类,但这不是我的方式,因为代表仅用于项目[行,列],而不是用于整个行或列。
这是错误的解决方案:
/// @brief ?????? ??????? ?????? ??????.
class DrawBorderDelegate : public QStyledItemDelegate
{
public:
DrawBorderDelegate( QObject* parent = 0 ) : QStyledItemDelegate( parent ) {}
void paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const;
}; // DrawBorderDelegate
void DrawBorderDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
QStyleOptionViewItem opt = option;
painter->drawRect( opt.rect );
QStyledItemDelegate::paint( painter, opt, index );
}
Run Code Online (Sandbox Code Playgroud)
在代码中的某处:
tableWidget->setItemDelegateForRow( row, new DrawBorderDelegate( this ) …Run Code Online (Sandbox Code Playgroud) 我想单击一个按钮并清除20个QLineEdits。
我正在尝试使用findChildren()并将所有QLineEdit放在QListWidget中
self.StudentAdmissionLayout = QGridLayout()
self.StudentAdmissionLayout.addWidget(self.StudentName,1,0,1,1)
Run Code Online (Sandbox Code Playgroud)
self.StudentAdmissionLayout布局上放置了所有QLineEdit。
self.myList = QListWidget()
self.Item = QListWidgetItem()
self.Item = self.StudentAdmissionLayout.findChildren(QLineEdit)
self.myList.addItem(self.Item)
Run Code Online (Sandbox Code Playgroud)
我得到以下错误:
TypeError: arguments did not match any overloaded call:
QListWidget.addItem(QListWidgetItem): argument 1 has unexpected type 'list'
QListWidget.addItem(QString): argument 1 has unexpected type 'list'
Run Code Online (Sandbox Code Playgroud)
我试图将以上4行放在一个循环中。但是第三行不起作用,我不确定如何使它起作用。请提出建议。
我在QT创建者中创建了一个项目,在VisualStudio中我创建了一个向用户发送电子邮件的c ++项目.现在我想将这个项目导入到Qt创建者中,并在我的Qt创建者项目中使用这个功能.c ++文件夹包含几个.cpp文件,头文件和make文件.我不确定如何将此项目导入QT创建者并使其运行.我试图找到一个解决方案,但找不到它.你能告诉我怎么做吗?
是否有可能重新定义某些行中某些行的行高QTreeView?
我有自定义QTreeView,自定义QAbstractItemModel和自定义QStyledItemDelegate,但似乎所有sizeHint方法只调用一次(最初)或在基类中不是虚拟的.
Qt版本4.7.4,没有升级到5可能.
任何帮助赞赏.
我有QDialog几个按钮和一个QTextEdit.在写完东西之后QTextEdit,我按下选项卡以进入其中一个按钮,但是当我按下选项卡时,会在标签空间中添加一个标签空间QTextEdit.我该如何改变这种行为?
提前致谢