Qt5有一个新的JSon解析器,我想使用它.问题在于,对于外行人的术语以及如何用它编写代码,它不是很清楚.那个或我可能读错了.
我想知道在Qt5中创建Json文件的代码以及"封装"的含义.
我不知道怎么问这个问题,所以,请随时询问更多信息.
似乎tableView->resizeColumnsToContents()只会根据当前视图中的数据调整所有列的大小.这意味着如果我有更多的数据(在单词数量方面更长),这些单词将被包装(如果wordWrap属性设置为true).
奇怪的是,如果我向下滚动到底部并刷新数据,tableView将正确调整这些列的大小.好像tableView不知道下面有更长的文字.
所以,我的问题是,如何根据所有数据确保将这些列调整为最大值?
我的代码
QSqlTableModel *model = new QSqlTableModel;
model->setTable("item");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
tableResult->setModel(model);
tableResult->setEditTriggers(QAbstractItemView::NoEditTriggers);
tableResult->setSelectionBehavior(QAbstractItemView::SelectRows);
tableResult->setSelectionMode(QAbstractItemView::SingleSelection);
tableResult->resizeColumnsToContents();
tableResult->resizeRowsToContents();
Run Code Online (Sandbox Code Playgroud)
更新1
我试过了tableResult->scrollToBottom(),它只会根据底部的项目调整大小.所以,如果中间有较长的单词,那些单词就会被包裹起来.
更新2
如果有人想了解我在说什么,请下载此示例.您将看到单击PushButton将生成未正确调整大小的数据.
更新3
在https://doc-snapshots.qt.io/qtcreator-extending/coding-style.html上,建议编写如下循环:
Container::iterator end = large.end();
for (Container::iterator it = large.begin(); it != end; ++it) {
//...;
}
Run Code Online (Sandbox Code Playgroud)
代替
for (Container::iterator it = large.begin(); it != large.end(); ++it) {
//...;
}
Run Code Online (Sandbox Code Playgroud)
由于我很少在任何代码中看到这种风格,我想知道end()的连续调用是否真的为stl容器上的大型循环添加了明显的运行时开销,或者编译器是否已经优化了这种情况.
编辑:许多非常好的评论指出:这个问题仅在循环内的代码不修改结束迭代器时才有效.否则,当然重复的结束呼叫是强制性的.
尝试在Mac上构建Qt项目时,我收到两个警告(使用QtCreator).
警告:没有.qmake.cache.这使得makepec显着减慢了qmake的速度.警告:在顶级项目文件中调用'cache()'以解决此问题.
警告指示调用cache()顶级项目,但我没有找到任何关于我应该如何做的文档.
我看到qt上记录了一些错误
我知道这只是一个警告,但我有兴趣修复它.有没有解决方法来解决它?
我为我们的产品创建了一个简单的安装程序,只有一个组件,没有远程存储库管理器.
当我启动卸载程序时,介绍页面显示3个单选按钮:
包经理
更新组件
删除所有组件
我只需要第三个,所以我检查了这个文档:
http://doc-snapshot.qt-project.org/qtifw-master/noninteractive.html
正如我已经理解并且无法隐藏按钮,我将其添加到我的install.qs文件中:
function Controller()
{
}
Controller.prototype.IntroductionPageCallback = function()
{
gui.clickButton(buttons.NextButton);
}
Run Code Online (Sandbox Code Playgroud)
这应该在介绍页面上自动单击"下一步",以便它直接进入卸载页面.
什么都没发生,我在Controller功能中编写的内容,介绍页面显示了3个单选按钮.我在函数中添加了一些消息框,它们从未被调用过.
有人知道怎么解决吗?
我有两个QObject子类实例和两个QMetaMethod信号实例,其中一个对象和另一个对象中的插槽.我想把这个信号和插槽相互连接起来.
我查看了qobject.h文件,发现SIGNAL()和SLOT()宏只是在方法签名的开头添加"1"或"2"字符,所以看起来应该可以添加相同的字符到QMetaMethod :: signature()返回的字符串的开头,但这种方法取决于一些未记录的工具包内部,并且可能随时被新版本的Qt破坏.
有没有人知道通过QMetaMethod反射表示连接信号和插槽的可靠方法?
编辑: 我在Qt问题跟踪器中创建了建议:https: //bugreports.qt.io/browse/QTBUG-10637 如果有人也对此功能感兴趣,您可以在那里投票支持此票.
我刚刚在使用此代码时发现了奇怪的行为
Qt.openUrlExternally(someurl);
Run Code Online (Sandbox Code Playgroud)
我想让我的用户打开facebook sharer url,但我无法使用此代码,因为它什么也没做.
在S60 5th和Symbian ^ 3设备(C5,C7,5230,N8)上测试
所以请告诉我(如果你知道的话)
1)这个组件/行为有什么问题吗?(我搜索并没有找到任何东西)
2)我怎样才能使C++组件做同样的事情?`(如果它是解决方案)
谢谢
编辑
我找到了使用QML可访问的方法创建C++组件的示例,请点击此处:http: //doc.qt.io/qt-4.8/qt-declarative-cppextensions-referenceexamples-methods-example.html
最终编辑
讨论导致制作错误报告,可在以下网址找到:https://bugreports.qt.io/browse/QTBUG-19201
谢谢大家
当我在我的c ++项目中一起使用Qt(v4.7.4)和Boost(尝试v1.47和v1.48)时,我得到一个由包含的类引起的链接器错误<boost\filesystem.hpp>.我刚刚设置了Qt,在代码工作之前没有任何问题.
这是错误消息:
... obj:错误LNK2001:未解析的外部符号"private:static class std :: codecvt const*&__cdecl boost :: filesystem3 :: path :: wchar_t_codecvt_facet(void)"(?wchar_t_codecvt_facet @ path @ filesystem3 @ boost @@ CAAAPBV ?$ @的codecvt GDH @ STD @@ XZ)
... obj:错误LNK2001:未解析的外部符号"void __cdecl boost :: filesystem3 :: path_traits :: convert(char const*,char const*,class std :: basic_string,class std :: allocator>&,class std: :codecvt const&)"(?convert @ path_traits @ filesystem3 @ boost @@ YAXPBD0AAV?$ basic_string @ GU?$ char_traits @ G @ std @@ V?$ allocator @ G @ 2 @@ std …
我是Qt开发的新手,我在MacOSX上使用Qt5 Beta1.
在过去的两天里,我一直在阅读文档并寻找有关我所拥有的不同可能性的信息,以便实现一个窗口小部件,该窗口小部件显示与具体时刻相对应的视频帧.简而言之,这是一个很好的旧预览.首先,我认为,因为我不需要任何花哨的东西,Phonon将是正确的选择,因为它被称为"在更高层次上(比QTMultimedia更高),并且在许多情况下更适合应用程序开发人员." 我阅读了它的文档,甚至发现了一些可以帮助我开始的讨论,就像这样; http://www.qtcentre.org/threads/13221-QT-4-4-Phonon-Video-Rendering-a-single-frame.但是,当我试图自己制作东西时,我意识到我没有Phonon库.对此感到惊讶,我研究了Phonon和Qt5.所有的麻烦都开始了.
我开始阅读这样的对话:http://comments.gmane.org/gmane.comp.lib.qt.user/1581 或者这个:http://comments.gmane.org/gmane.comp.lib. qt.devel/3905或其他链接:https://bugreports.qt.io/browse/QTBUG-26471.我真的很困惑,不知道下载Phonon库是不是一个好主意,或者在一段时间之后它不会在Qt5上得到支持.因此我决定退后一步,再次考虑使用QTMultimedia而不是Phonon.我看了他们的VideoWidget示例http://doc.qt.io/qt-4.8/qt-multimedia-videowidget-example.html,当我试图运行它时,它抛出了几个错误(我发布的只是一个开头)输出):
In file included from ../VideoExample/videoplayer.cpp:43:
In file included from ../VideoExample/videowidget.h:44:
../VideoExample/videowidgetsurface.h:57:11: warning: 'VideoWidgetSurface::isFormatSupported' hides overloaded virtual function [-Woverloaded-virtual]
bool isFormatSupported(const QVideoSurfaceFormat &format, QVideoSurfaceFormat *similar) const;
^
../../Downloads/qt-everywhere-opensource-src-5.0.0-beta1/qtbase/include/QtMultimedia/../../../qtmultimedia/src/multimedia/video/qabstractvideosurface.h:78:18: note: hidden overloaded virtual function 'QAbstractVideoSurface::isFormatSupported' declared here
virtual bool isFormatSupported(const QVideoSurfaceFormat &format) const;
^
../VideoExample/videoplayer.cpp:61:40: error: expected a type
QAbstractButton *openButton = new QPushButton(tr("Open..."));
^
../VideoExample/videoplayer.cpp:62:6: error: no matching member …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用QML Scale Element来围绕用户点击的点执行视图缩放,但它并不总是按照记录的方式工作.
要重现该问题,请运行下面的最小QML示例(我在Ubuntu 14.04 x86_64上使用Qt 5.3.1)然后:
我的目标是让它始终正确缩放,将点击点保持为原点,如文档中所述.
PS有趣的是,如果您现在再次点击红色矩形的中心,它会按照承诺在该点附近放大.现在再次单击蓝色矩形的中心,您会看到相同的意外翻译行为.
PPS我正在开发一个应用程序,用户可以在包含矩形的任何地方鼠标滚动/捏住,内部的所有内容都应该在鼠标/捏合位置周围向上或向下缩放.许多应用程序都有这种行为.参见例如inkscape.
import QtQuick 2.2
import QtQuick.Controls 1.1
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Rectangle {
x: 100
y: 100
width: 300
height: 300
transform: Scale {
id: tform
}
MouseArea {
anchors.fill: parent
onClicked: {
console.log(mouse.x + " " + mouse.y)
tform.xScale += 0.5
tform.yScale += 0.5
tform.origin.x = mouse.x
tform.origin.y = mouse.y
}
} …Run Code Online (Sandbox Code Playgroud) qt ×9
c++ ×5
qt5 ×3
qml ×2
boost ×1
containers ×1
json ×1
performance ×1
phonon ×1
qt-creator ×1
qt-installer ×1
qt-quick ×1
qt4 ×1
qtableview ×1
stl ×1
symbian ×1
warnings ×1