[Çözüldü] Qt ile Arayüz C++

Başlatan erdemakin09, 06 Nisan 2016 - 00:04:51

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

erdemakin09

İyi Günler Arkadaşlar. Konuyu PyQt altına mı yoksa c++ altına mı açayım kararsız kaldım. Eğer moderatörler yanlış olduğuna karar verirse zahmet olmasın değiştirebilirseler çok sevinirim:)


C++ dilinde bir konsol uygulaması yazdım. Yazdığım bu uygulama ile kullanıcıdan düğüm sayısı alınıyor. Düğümlerin kordinatları giriliyor ve program en kısa yol ağacını çiziyor. Bu programa qt ile bir arayüz yapmak istiyorum. Burada iki tane sorunum var.
1.si programın kullanıcı dostu olması için Kullanıcı ilk form ekranında düğüm sayısını girecek. Sonra next butonuna basacak. 1.düğüm kordinatlarını isteyecek. sonra next butonuna basacak 2. düğümün kordinatlarını isteyecek. sonra 3. düğüm 4. düğüm diye gidecek. Benim istediğim şey burada kullanıcının istediği düğüm sayısı kadar next demek. Yani kullanıcı 5 düğüm isteyince 5. düğüm girilince next değil. Solved yazmasını istiyorum.
2.si ise ben bu kodların hangisini nereye yazacağım. Main.cpp içinde algoritmayı yazıp çıkan matrisi ui arayüzüne nasıl aktarıcam.
Her Can Bir Gün Ölümü Tadacaktır!

Erdem

Veri yapısı, algoritma ve program ara yüzünü birbirinden ayırırsanız daha iyi bir tasarım kabul ediliyor. Buna tasarım örüntüsü deniliyor.

Örneğin veri yapısı bir çizit ise bu ayrı bir kütükte, bunun üzerinde arama yapan arama algoritması örneğin derinine arama ayrı bir kütükte, program ara yüzü ise başka bir kütükte kodlayabilirsiniz. İlerde derinine arama algoritması yerine BFS ya da A* kullanmak isteyebilirsiniz. Bu şekilde tasarım da kodun tekrar kullanılabilirliği ve tasarım açısından güzel bir yöntem kabul ediliyor.
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik

erdemakin09

#2
Peki başkanım qt kullandınız mı? Ben qt üzerinde daha önce hiç programlama yapmadım. Sizin bu söylediklerinizden şunu anladım ben başkanım. Main cpp içinde algoritmalar mainwindow.cppde arayüz programlamalar yapmam gerekiyor
Her Can Bir Gün Ölümü Tadacaktır!

Erdem

#3
Evet bir iş mülakatı için proje ödevini Qt ile vermişlerdi.

Genelde Qt kullanırken main.cpp içinde sadece diğer kutükleri çalıştıracak kadar bir kod görüyorum. Hatta çok basit bir örnek paylaşayım:

// notdefteri.cc


#include "notdefteri.h"

int main(int argv, char **args)
{

    QApplication uygulama(argv, args);

    NotDefteri notdefteri;
    notdefteri.show();
   

    return uygulama.exec();
}



//ana.cc
#include "notdefteri.h"

int main(int argv, char **args)
{

    QApplication uygulama(argv, args);

    NotDefteri notdefteri;
    notdefteri.show();
   

    return uygulama.exec();
}


// notdefteri.h

#include <QtGui>
#include <QString>

class NotDefteri:public QWidget
{
    Q_OBJECT

public:
    NotDefteri();

private slots:
    void cikis();

private:
    QTextEdit * yaziBolumu_;
    QPushButton * cikisDugmesi_;
};


Derlemek ve çalıştırılabilir bir dosya oluşturmak için de:

        qmake -project
        qmake
        make


Benim anlatmaya çalıştığım şuydu.

Örneğin çizit veri yapısını içeren cizit.cc isimli bir kütük, derine arama algoritmasını içeren derineara.cc isimli başka bir kütük olabilir. Uygulama için de istediğiniz ismi verebilirsiniz.

Qt uygulamalarında ana kütüğü içinde de genelde sadece programı çalıştıracak kadar bir kod bulunuyor.

Gene de yapmak istediğiniz şeyi tam olarak hatta bir parça kod ekleyerek yazabilirsiniz. Ben düğüm ve en kısa yol deyince herhalde çizit ("graph") arama algoritmaları üzerinde çalışıyorsunuz diye düşündüm. Örneğin derinine arama şu şekilde çalışıyor.

http://www.zayifakim.org/resim/resim/pacmandfs.mp4

Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik

erdemakin09

#4
Çok Teşekkür ederim. Çözüldü etiketi atmıyorum. Yapamazsam yeni konu açmak yerine buradan sorarım :)
Her Can Bir Gün Ölümü Tadacaktır!

neynefes

Çözüldü olarak etiketleseniz ve biz başlığı kapatsak bile kilit açtırma isteği gönderebilirsiniz. Aklınızda bulunsun.

erdemakin09

Alıntı yapılan: neynefes - 06 Nisan 2016 - 22:23:14
Çözüldü olarak etiketleseniz ve biz başlığı kapatsak bile kilit açtırma isteği gönderebilirsiniz. Aklınızda bulunsun.

O zaman çözüldü etiketini atıyorum şimdilik :)
Her Can Bir Gün Ölümü Tadacaktır!

neynefes

Peki kapatıyorum başlığı o zaman. Dediğim gibi kilit açma isteği gönderebilirsiniz sağ üst köşedeki butondan.