Я следую этому учебнику на YouTube, и человек устанавливает TextField
для заполнения ширины RowLayout
.Тем не менее, это не похоже на работу для меня.Я попытался использовать Layout.fillWidth
на CheckBox
, и он, кажется, работает отлично, но, похоже, не хочет работать на TextField
.Вот мой код:
main.qml:
import QtQuick 2.9
import QtQuick.Controls 2.2
ApplicationWindow
{
visible: true;
width: 640;
height: 480;
title: qsTr("Tabs");
ToDoList
{
anchors.centerIn: parent;
}
}
ToDoList.qml:
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
Frame
{
ListView
{
// Using implicit width and height allows the frame to automatically scale to the size of the list view
implicitWidth: 250
implicitHeight: 250
clip: true
model: 100
delegate: RowLayout {
width: parent.width
CheckBox {}
TextField
{
Layout.fillWidth: true
}
}
}
}
Вот скриншот того, как моя выглядит
Что я сделал не так?
Я не знаю, связано ли это с этим, но я сделал "Qt Quick Application"- Проведите пальцем "вместо" Приложение Qt Quick Controls 2 ", так как эта опция была мне недоступна.Заранее благодарен за любую помощь.
Редактировать: я написал пошаговые инструкции для воспроизведения вопроса ниже.
- Файл> Новый файл или проект
- В новом окне убедитесь, что выбрано «Приложение», затем нажмите «Qt Quick Application - Swipe» и нажмите «Выбрать»
- Установите любое имя для проекта и нажмите «Далее»
- Установите систему сборки на "qmake" и нажмите "Далее"
- Установите минимальную требуемую версию Qt на "Qt 5.9", а стиль быстрых элементов управления Qt на "Material Dark" и нажмите "Далее"
- Выберите «Desktop Qt 5.12.0 MSVC2017 64bit» в качестве комплекта и нажмите «Далее»
Установите параметры, чтобы не было контроля версий, и нажмите «Готово»
Удалите «Page1Form.ui.qml» и «Page2Form.ui.qml» из панели «Проекты»
- Замените содержимое «main.qml» на:
import QtQuick 2.9
import QtQuick.Controls 2.2
ApplicationWindow
{
visible: true;
width: 640;
height: 480;
title: qsTr("Tabs");
ToDoList
{
anchors.centerIn: parent;
}
}
Щелкните правой кнопкой мыши по корневому файлу проекта и нажмите «Добавить новый» В новом окне убедитесь, что выбран «Qt», затем нажмите «Файл QML (Qt Quick 2)» и нажмите «Выбрать» Назовите файл «ToDoList» и нажмите «Далее» Добавить в проект «Префикс qml.qrc: /», затем установите параметры, чтобы не было контроля версий, и нажмите «Готово» Заменить содержимое "ToDoList.qml" на:
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
Frame
{
ListView
{
// Using implicit width and height allows the frame to automatically scale to the size of the list view
implicitWidth: 250
implicitHeight: 250
clip: true
model: 100
delegate: RowLayout {
width: parent.width
CheckBox {}
TextField
{
Layout.fillWidth: true
}
}
}
}
Запустить проект