Erfahrenes Mitglied
Registriert seit: Oct 2009
Beiträge: 639
Bedankt: 228
|
Ich weiß nicht ob es jemand Schaft, der nur mit Photoshop umgehen kann (aber die frage ist, ob ich mir einen Fleischer als Zuckerbäcker einstellen will ...), aber hier mal meine Umsetzung (wobei ich nur die roten Teile selbst geschrieben habe, der Rest stammt von der IDE):
projekt.pro (für qmake)
Code:
QT += core gui
TARGET = projekt
TEMPLATE = app
SOURCES += main.cpp\
widget.cpp
HEADERS += widget.h
FORMS += widget.ui
widget.h
Code:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_pushButton_pressed();
void on_pushButton_released();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
main.cpp
Code:
#include <QtGui/QApplication>
#include "widget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.cpp
Code:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_pressed()
{
QRect newRect = geometry();
newRect.setSize(QSize(200,200));
setGeometry(newRect);
}
void Widget::on_pushButton_released()
{
QRect newRect = geometry();
newRect.setSize(QSize(100,100));
setGeometry(newRect);
}
widget.ui
Code:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Widget</class>
<widget class="QWidget" name="Widget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>100</width>
<height>100</height>
</rect>
</property>
<property name="windowTitle">
<string>Widget</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">QPushButton:!hover{ background-color: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0 rgba(255, 255, 255, 255), stop:0.1 rgba(255, 255, 255, 255), stop:0.2 rgba(255, 176, 176, 167), stop:0.3 rgba(255, 151, 151, 92), stop:0.4 rgba(255, 125, 125, 51), stop:0.5 rgba(255, 76, 76, 205), stop:0.52 rgba(255, 76, 76, 205), stop:0.6 rgba(255, 180, 180, 84), stop:1 rgba(255, 255, 255, 0));}
QPushButton:hover{background-color: qradialgradient(spread:repeat, cx:0.5, cy:0.5, radius:0.077, fx:0.5, fy:0.5, stop:0 rgba(0, 169, 255, 147), stop:0.497326 rgba(0, 0, 0, 147), stop:1 rgba(0, 169, 255, 147));}</string>
</property>
<property name="text">
<string>Ein Knopf</string>
</property>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
Download exe und Quellcode
Über die Qualität der Lösung, kann ich dir nichts sagen (ob es bessere Möglichkeiten mit Qt geben würde oder nicht ...), da ich es nur schnell schnell mit dem Designer und der Dokumentation erstellt habe (um zu zeigen ,dass es möglich ist, und wie es möglich ist -> wahrscheinlich interessant für den TS).
Natürlich kann Qt nicht ohne eine Zeile Code, eine Animation machen (immerhin ist es eine Programmbibliothek ... und kein Entwicklungstool). Aber mit Qt Creator geht es fast. Jedoch hat dass ja jetzt nichts mehr mit dem verwendeten Framework oder Libarie zu tun, sondern mit dem verwendeten Entwicklungstool (IDE).
|