Qt/QML Eine ScrollBar für ein TextField erstellen?

Hey,

ich möchte eine ScrollBar in Qt für ein TextField erstellen. Außerdem soll wenn man Text auswählt den man eingegeben hat und Rechts-Klick macht, ein Pop Up Menü angezeigt werden bei dem man Optionen wie z.B "Einfügen" oder "Kopieren" hat.

Wenn ich den Folgenden Code ausführe bekomme ich 2 Fehler:

  1. qrc:/main.qml:89:26: QML Rectangle: Binding loop detected for property "implicitWidth"
  2. qrc:/main.qml:89:26: QML Rectangle: Binding loop detected for property "implicitHeight"

Hier die main.qml:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5

ApplicationWindow {
   id: mainWindow
   visible: true
   width: 900
   height: 600
   title: qsTr("Hello World")
    
    
   TextField {
       id: textFieldForURL
       width: parent.width/2
       height: parent.height/14
       y: parent.height/4
       x: -scrollBar1.position * width
    
       anchors.centerIn: parent
       leftPadding: 8
       topPadding: 4
       rightPadding: 43
    
       color: "white"
       font.pixelSize: parent.height/20
       selectionColor: "#3b3d45"
       placeholderText: "Type something"
       placeholderTextColor: "#3b3f44"
       selectByMouse: true
       maximumLength: 1000
  
       background: Rectangle {
          id: textFieldForURL_Background
          color: "black"
          radius: 5
  
          Rectangle {
             id: clearTextFieldForURL_Background
             width: parent.height
             height: parent.height
             anchors.right: parent.right
             color: "black"
          }
       }
  
      Text {
         id: clearTextFieldForURL
         height: parent.height
         width: parent.height
         text: "X"
         color: "white"
         font.pixelSize: 30
         anchors.right: parent.right
         leftPadding: 13
  
         MouseArea {
            id: clearTextFieldForURL_MouseArea
            height: textFieldForURL.height
            width: textFieldForURL.height
            hoverEnabled: true
            anchors.horizontalCenter: parent.horizontalCenter
            anchors.verticalCenter: parent.verticalCenter
  
            onClicked: {
               textFieldForURL.text = ""
               textFieldForURL.forceActiveFocus()
            }
            onEntered: {
               clearTextFieldForURL_Background.color = "#2a2c30"
            }
            onExited: {
               clearTextFieldForURL_Background.color = "black"
            }
         }
      }

      ScrollBar {
         id: scrollBar1
         hoverEnabled: true
         active: hovered || pressed
         orientation: Qt.Horizontal
         size: textFieldForURL_Background.width / textFieldForURL.width

         anchors.left: parent.left
         anchors.right: parent.right
         anchors.bottom: parent.bottom

         contentItem: Rectangle {
            implicitWidth: parent.width
            implicitHeight: parent.height
            radius: width / 2
            color: scrollBar1.pressed ? "white" : "#999999"
         }
      }
   }
}
Computer, Programm, programmieren, Programmierung, Programmiersprache, Qt
1 Antwort
(C++ Anfänger) Möchte im Prinzip eine Software entwickeln und habe einige Fragen?

Hey,

ich möchte ein Programm in C++ erstellen. Es soll eine moderne Oberfläche haben und mir ist wichtig, das es auf verschiedenen Betriebssystemen laufen soll, nicht nur auf Windows. Ich bin ein Anfänger und kann gerade mal die Grundlagen von C++, setze mir jedoch hohe Ziele. Ich habe bis jetzt mit der IDE Visual Studio programmiert, sollte ich zu Qt o.ä wechseln? Ich habe gelesen das es mit anderen IDE's einfacher sei GUI's zu erstellen, weiß jedoch nicht ob das stimmt. Ich möchte eine Software entwickeln, die modern und schnell ist, sowie auf anderen Betriebssystemen läuft. Damit es auf anderen Betriebssystem läuft muss ich es neu kompilieren richtig? Muss ich den Code ändern, damit es auf anderen Betriebssystemen läuft? Was für ein Projekt sollte ich erstellen? Und was für Bibliotheken bzw. API's werden verwendet wenn ich ein Projekt erstelle(Kann ich Bibliotheken oder API's einfach downloaden und damit programmieren)? Habe ich bei Visual Studio bisher immer die Windows API benutzt? Was ist Windows Runtime C++ und was ist C++/CLI? DirectX ist nur für 3D Anwendungen da richtig? Habe viel Zeit, ich würde jeden Tag mindestens 2 Stunden lernen. Ich weiß ich kann auch Google für wahrscheinlich all diese Fragen verwenden, wenn du nicht antworten möchtest, lass es einfach :)

Lg

PC, Computer, Software, Technik, programmieren, cplusplus, CPP, Informatik, programmieren lernen, Technologie, Visual Studio, Spiele und Gaming
3 Antworten
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.