我正在编写一个QT应用程序,我需要在QDialog中嵌入一个终端(我们说,xterm),就像一些KDE应用程序(参见kdevelop/kate/...).
我一直在尝试: - QX11EmbedContainer放入我的QDialog的QLayout - QProcess我想要的程序
我希望QProcess在QX11EmbedContainer中运行,但它不起作用.
问题是我不能把xterm放到QX11EmbedContainer中,我唯一得到的是一个xterm窗口(不幸的是与我的QDialog分开).有没有人遇到同样的问题?
我有一个QTreeWidget,列中填充了一些数字,我该如何对它们进行排序?
如果我使用setSortingEnabled(true); 我只能正确排序字符串,所以我的列被排序:
1 10 100 2 20 200
但这不是我想要的!建议?
我可以通过pyPdf使用以下代码读取xmp元数据:
a = pyPdf.PdfFileReader(open(self.fileName))
b = a.getXmpMetadata()
c = b.pdf_keywords
Run Code Online (Sandbox Code Playgroud)
但是:这是最好的方法吗?
如果我不使用pdf_keywords属性?
有没有办法用pyPdf设置这些metadatas?
我有一个继承QTreeWidget的类.如何找到当前选定的行?通常我会以这种方式将信号连接到插槽:
connect(myButton, SIGNAL(triggered(bool)), this, SLOT(myClick()));
Run Code Online (Sandbox Code Playgroud)
但是,我找不到类似的东西QTreeWidget->QTreeWidgetItem.我找到的唯一方法是重新定义QTreeWidget类的mousePressEvent,如下所示:
void MyQTreeWidget::mousePressEvent(QMouseEvent *e){
QTreeView::mousePressEvent(e);
const QModelIndex index = indexAt(e->pos());
if (!index.isValid())
{
const Qt::KeyboardModifiers modifiers = QApplication::keyboardModifiers();
if (!(modifiers & Qt::ShiftModifier) && !(modifiers & Qt::ControlModifier))
clearSelection();
}
}
Run Code Online (Sandbox Code Playgroud)
我还没试过.是唯一的解决方案还是有更简单的方法?
我有一个继承的QTreeWidget(称为PackList)类,其父级是KXmlGuiWindow.如何访问父母的插槽?
我已经尝试过来自QTreeWidget类的getParent() - > mySlot()但是我已经有了
error: no matching function for call to 'PackList::mySlot()'
Run Code Online (Sandbox Code Playgroud)
有人知道正确的方法吗?谢谢
我有一个K*窗口,在其中,需要过滤事件的窗口小部件.
例如,我不想点击它的可能性......
我怎样才能做到这一点?
我有没有使用eventfilters?在这种情况下,最好的方法是什么?
但我的问题是我无法子类化我的小部件,因为它是一个TerminalInterface-> widget(),而不是像其他人一样的对象:\
我正在开发一个应用程序,它使用谷歌地图api v3来显示标记和infowindows.
好吧,我有一个存储在一个数组中的N个标记和一个用于显示一些信息的全局信息窗口.
只需单击以这种方式创建的标记即可显示infowindow内容:
/* global js stuff */
var g_map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var g_current_popup = new google.maps.InfoWindow({ content: "" });
var g_markers = [];
/* create marker function */
function addMarker(p_infowindow_contents)
{
var l_marker = new google.maps.Marker( all the stuff needed );
google.maps.event.addListener(l_marker, 'click', function()
{
g_current_popup.close(); // if already open, it must be closed and reloaded
g_current_popup.setContent(p_infowindow_contents);
g_current_popup.open(g_map, l_marker);
});
g_markers.push(l_marker);
}
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作,除了一点点图形故障:当infowindow出现时,我看到infowindow'tip'位于一个未知位置十分之一秒,然后它消失了,我看到了正确的信息窗口.
看看这个截图在提示消失之前拍摄:

有没有人经历过这样的事情?可能是一些CSS问题?
谢谢
我在QTreeWidgetItem中有一个QVariant对象,如何将它转换为我自己的对象?
我有一个Pkg类,我需要在QVariant的形式下使用它.
在我的Pkg.h结束时,我有:
Q_DECLARE_METATYPE(Pkg)
Run Code Online (Sandbox Code Playgroud)
这不会给出编译错误,但在我的main.cpp中我必须这样做:
qRegisterMetaType<Pkg>("Pkg");
Run Code Online (Sandbox Code Playgroud)
这也不会给出错误,但是当我尝试创建一个QVariant(Pkg)时,我会遇到很多错误:
In member function 'void MainWindow::FillPackagesList()':
mainWin.cpp:233: error: 'qRegisterMetaType' isnot a member of 'QMetaType' mainWin.cpp:234: error: no matching function for call to QVariant::QVariant(Pkg&)'
/usr/lib/qt/include/QtCore/qvariant.h:208: note: QVariant::QVariant(Qt::GlobalColor)
/usr/lib/qt/include/QtCore/qvariant.h:206: note: QVariant::QVariant(const QRegExp&)
/usr/lib/qt/include/QtCore/qvariant.h:204: note: QVariant::QVariant(const QLocale&)
/usr/lib/qt/include/QtCore/qvariant.h:203: note: QVariant::QVariant(const QUrl&)
/usr/lib/qt/include/QtCore/qvariant.h:201: note: QVariant::QVariant(const QRectF&)
/usr/lib/qt/include/QtCore/qvariant.h:200: note: QVariant::QVariant(const QRect&)
Run Code Online (Sandbox Code Playgroud)
和错误再次错误...
我有一个jframe(父),它创建一个输入框架(子),我得到一些参数.
在"子"框架中,我有"确定"和"取消"按钮.
按下"确定"按钮时,需要使用新数据更新父框架.
最好的方法是什么?
我有这个java字符串:
String bla = "<my:string>invalid_content</my:string>";
Run Code Online (Sandbox Code Playgroud)
如何更换"invalid_content"文章?
我知道我应该使用这样的东西:
bla.replaceAll(regex,"new_content");
Run Code Online (Sandbox Code Playgroud)
为了有:
"<my:string>new_content</my:string>";
Run Code Online (Sandbox Code Playgroud)
但我无法发现如何创建正确的正则表达式
请帮忙 :)
我正在bash中为Linux上的应用程序编写安装脚本.
此脚本将一些文件复制到/ usr/bin和/ usr/share中,因此需要由root用户执行,此外它还会在$ HOME目录中为配置文件创建一个隐藏目录.
问题是:如果普通用户想要安装程序,他需要是root用户.但如果他是root用户,$ HOME目录将是/ root /而不是/ home/username.
qt ×7
linux ×6
kde ×4
c++ ×3
events ×2
java ×2
bash ×1
casting ×1
css ×1
google-maps ×1
html ×1
javascript ×1
jbutton ×1
jframe ×1
kdelibs ×1
metadata ×1
pdf ×1
pypdf ×1
python ×1
qtreewidget ×1
qvariant ×1
regex ×1
replace ×1
root ×1
scripting ×1
sorting ×1
string ×1
swing ×1
treewidget ×1
widget ×1
x11 ×1
xmp ×1
xterm ×1