嗨,我想把这段代码:
highlight: Rectangle {
color: "black"
radius: 5
opacity: 0.7
focus: true
}
Run Code Online (Sandbox Code Playgroud)
在onclick处理程序中进入mouseArea:
MouseArea {
id: mouse_area1
z: 1
hoverEnabled: false
anchors.fill: parent
onClicked: {
}
Run Code Online (Sandbox Code Playgroud)
这都是listView:
ListView {
id: listview1
x: 0
y: 82
// width: 574
// height: 967
width: window.width
height: window.height
visible: true
keyNavigationWraps: false
boundsBehavior: Flickable.DragAndOvershootBounds
opacity: 1
maximumFlickVelocity: 2500
anchors.leftMargin: 0
highlightMoveSpeed: 489
contentWidth: 0
preferredHighlightEnd: 2
spacing: 5
highlightRangeMode: ListView.NoHighlightRange
snapMode: ListView.SnapToItem
anchors.bottomMargin: 0
anchors.rightMargin: 0
anchors.topMargin: 82
anchors.fill: parent
model: myModel …
Run Code Online (Sandbox Code Playgroud) 在我的QML Text元素中,我希望有一个指向网站的超链接,并设法使用它看起来像一个等等.但是当我点击或触摸它没有任何反应时,该链接应该在默认浏览器中打开.
Text {
id: link_Text
text: '<html><style type="text/css"></style><a href="http://google.com">google</a></html>'
}
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
我想在配置文件中声明一个全局属性,并在其他文件中使用它.例如声明mainbg
:
Style.qml:
property color mainbg: 'red'
Run Code Online (Sandbox Code Playgroud)
并在其他QML文件(如view.qml
和main.qml
)中使用它.我该怎么做这个工作?
目前我需要在ListView控件的帮助下绘制一个委托矩形.我能够在列表视图中绘制一系列水平或垂直矩形,但问题在于矩形的边框.相邻矩形的交叉点处的边界宽度是宽度的两倍.
委托矩形只是一个Qt Quick Rectangle元素.
是否可以仅限制矩形任何一侧的边框宽度?
是否可以改变任何一方的颜色?(类似于QLineEdit的东西 - 我们可以控制边界宽度和颜色相对于边)
此致,Santhosh.
Stackoverflow还有关于此问题的另一个问题,但我没有找到可接受的解决方案.所以我再问一遍,因为旧的问题没有引起人们的注意.
情况就是这样.我有'main.qml','feature1.qml','feature2.qml'定义的应用程序屏幕.
这些屏幕共享标题栏下方的相同工具栏.工具栏有多个项目,因此复制粘贴QML代码就像疯了一样.这个问题:QML文件包含 - 或者一个单片文件(结构QML代码)?说可以只使用QML文件名作为组件名称,但我无法使其正常工作.
有解决方案吗 详情请参阅.
如何在QML中自动拉伸元素以使其所有子元素都适合它?以及如何指定间距?例如,我想在文本周围有一个矩形.矩形应该有一些内部间距.
如果我写下面的内容,那么矩形的大小为0,0.
Rectangle {
color: "gray"
anchors.centerIn: parent;
Text {
text: "Hello"
}
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用Column
元素修复它,如如何使QML项目增长以适应内容?,然后我通过整个窗口/父级得到一个列,
Column {
anchors.centerIn: parent
Rectangle {
color: "gray"
anchors.fill: parent
}
Text {
anchors.centerIn: parent
text: "Hello"
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我也尝试使用Flow
元素代替Column
,但后来我在整个窗口/父级中获得了一行.
我想在QML中实现以下场景.
这是ListView
元素的示例/简化委托:
Component {
Item {
id: container
MouseArea {
anchors.fill: parent
hoverEnabled: true
onClicked: {
container.ListView.view.currentIndex = index
container.forceActiveFocus();
}
onEntered: {
actionList.state = "SHOW";
myItem.state = "HOVER"
}
onExited: {
actionList.state = "HIDE";
myItem.state = "NORMAL"
}
Rectangle {
id: myItem
color: "gray"
anchors.fill: parent
Row {
id: actionList
spacing: 5; anchors.fill: parent
Image {
id: helpAction
source: "" //Some image address
width: 16; height: 16; fillMode: Image.PreserveAspectFit
states: [
State {
name: "NORMAL"
PropertyChanges { …
Run Code Online (Sandbox Code Playgroud) 这是从blackberry 10 helloworld程序中提取的头文件.
#ifndef ApplicationUI_HPP_
#define ApplicationUI_HPP_
#include <QObject>
namespace bb
{
namespace cascades
{
class Application;
class LocaleHandler;
}
}
class QTranslator;
/*!
* @brief Application object
*
*
*/
class ApplicationUI : public QObject
{
Q_OBJECT
public:
ApplicationUI(bb::cascades::Application *app);
virtual ~ApplicationUI() { }
private slots:
void onSystemLanguageChanged();
private:
QTranslator* m_pTranslator;
bb::cascades::LocaleHandler* m_pLocaleHandler;
};
#endif /* ApplicationUI_HPP_ */
Run Code Online (Sandbox Code Playgroud)
在类名声明后,我对冒号运算符感到困惑.
class ApplicationUI : public QObject
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
我想在javascript中创建一个延迟函数,它接受延迟时间量的参数,这样我就可以使用它确实引入了我的QML应用程序中javascript行执行之间的延迟.它可能看起来像这样:
function delay(delayTime) {
// code to create delay
}
Run Code Online (Sandbox Code Playgroud)
我需要功能的主体delay()
.请注意,setTimeout()
javascript在QML中不起作用.
我使用QQmlApplicationEngine
如下:
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
app.exec();
Run Code Online (Sandbox Code Playgroud)
但现在我想为我的应用程序启用多重采样,并且QQmlApplicationEngine
似乎没有setFormat
启用多重采样的方法.
我QQmlApplicationEngine
在论坛中找到了一种方法:
QQuickWindow* window = (QQuickWindow*) engine.rootObjects().first();
QSurfaceFormat format;
format.setSamples(16);
window->setFormat(format)
Run Code Online (Sandbox Code Playgroud)
但它依赖于引擎的第一个根对象是a QQuickWindow
,这在Qt docs中没有记录.所以我不想使用那种技术.
另一种方法是跳过QQmlApplicationEngine
并创建一个QQuickView
代替.这确实有一个setFormat
让我能多采样方法,但我不知道,我是不可能输给由切换什么QQmlApplicationEngine
来QQuickView
?
换句话说,这两个类之间有什么区别?
我找到的一个区别是(从这里):
与QQuickView不同,QQmlApplicationEngine不会自动创建根窗口.如果您使用Qt Quick中的可视项目,则需要将它们放在窗口内.
这种特殊的差异对我来说无关紧要.
还有其他差异吗?
qml ×10
qt ×7
c++ ×2
qtquick2 ×2
components ×1
delay ×1
hyperlink ×1
include ×1
javascript ×1
listview ×1
qquickview ×1
qt5 ×1
scope ×1
selecteditem ×1
symbian ×1
text ×1
variables ×1