Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

QT i QListWidget

[es] :: C/C++ programiranje :: QT i QListWidget

[ Pregleda: 1458 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FantasticFour

Član broj: 267424
Poruke: 53
..178.212.adsl.dyn.beotel.net.



+10 Profil

icon QT i QListWidget13.10.2010. u 15:41 - pre 164 meseci
radim u qt-creator-u

evo ovako
na QMainWindow imam
1 QPushButton
2 QLineEdit
3 QListWidget
i sad na QListWdget imam 3 iten-a
kako da se kad kliknem na pushbutton u lineedit ispise teks od tog iten-a
npr
izaberem Marko
kliknem na pushbutton i u lineedit-u ispise Marko

molim pomagajte ovo mi je jako hitno
 
Odgovor na temu

BinaryRuler

Član broj: 73518
Poruke: 189
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: QT i QListWidget13.10.2010. u 21:28 - pre 164 meseci
Jedan od nacina je da uhvatis signal currentItemChanged (QListWidgetItem* current, QListWidgetItem* previous) QListWidget-a i da ga pocezes na neki tvoj slot.
Unutar slota kazes da lineEdit preuzme ime od current item-a.

Ako ti treba detaljno javi, sada nisam imao vremena da ti ispisem sve samo sam ti rekao princip.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2790 Profil

icon Re: QT i QListWidget13.10.2010. u 21:43 - pre 164 meseci
Code:
QList<QListWidgetItem*> selected = listWidget->selectedItems();
QString text;

if (selected.empty() == false) {
    text = (*(selected.begin()))->text();
}

lineEdit->setText(text);

Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2790 Profil

icon Re: QT i QListWidget13.10.2010. u 22:10 - pre 164 meseci
Možda si pak mislio na ovo

Code:
QListWidgetItem *current = listWidget->currentItem();
QString text;

if (current != 0) {
    text = current->text();
}

lineEdit->setText(text);


U oba slučaja, priloženi kod smeštaš u metodu u kojoj se obrađuje pritisak na dugme.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

FantasticFour

Član broj: 267424
Poruke: 53
212.178.229.*



+10 Profil

icon Re: QT i QListWidget14.10.2010. u 05:24 - pre 164 meseci
hvala puno
 
Odgovor na temu

FantasticFour

Član broj: 267424
Poruke: 53
212.178.229.*



+10 Profil

icon Re: QT i QListWidget14.10.2010. u 05:38 - pre 164 meseci
a ali sad nece opet
Code:

void MainWindow::on_pushButton_clicked()
{
    QListWidgetItem item = ui->accessories->currentItem();
    QString current;
    current = item.text();
    ui->lineEdit->setText(current);
}


ispise gresku
error: conversion from ‘QModelIndex’ to non-scalar type ‘QListWidgetItem’ requested
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2790 Profil

icon Re: QT i QListWidget14.10.2010. u 16:28 - pre 164 meseci
Metoda currentItem() vraća pokazivač na QListWidgetItem, jer se može desiti da nema tekućeg elementa (na primer, lista je prazna), kada vraća 0. Tu ti je greška. Dakle,

Code:
void MainWindow::on_pushButton_clicked() {
    QListWidgetItem *item = ui->accessories->currentItem();
    QString current;

    if (item) {
        current = item->text();
    }

    ui->lineEdit->setText(current);
}

Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

FantasticFour

Član broj: 267424
Poruke: 53
..178.212.adsl.dyn.beotel.net.



+10 Profil

icon Re: QT i QListWidget15.10.2010. u 14:43 - pre 164 meseci
ok samo jos jedno pitanje
Code:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
#include <QTextStream>
#include <QFile>
#include <QListWidgetItem>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

class dash
{
public:
    QString selectedApp(int currentRow)
    {
        QFile currentrow("current-row.cr");
        currentrow.open(QIODevice::ReadWrite | QIODevice::Text);
        QTextStream writer(&currentrow);
        writer << currentRow;
        QString currentAppNumber;
        QString currentAppNumberIndex;
        writer >> currentAppNumberIndex;
        currentAppNumber = "grep " + currentAppNumberIndex + " apps.list > currentapp.list";
        currentrow.close();
        QFile command("command.sh");
        command.open(QIODevice::ReadWrite | QIODevice::Text);
        QTextStream commander(&command);
        commander << currentAppNumber;
        system("sh command.sh");
        command.close();
        QFile currentAppName("currentapp.list");
        currentAppName.open(QIODevice::ReadOnly | QIODevice::Text);
        QTextStream reader(&currentAppName);
        QString appName;
        reader >> appName;
        currentAppName.close();
        return (appName);
    }
};

void MainWindow::on_pushButton_clicked()
{
    dash software;
    ui->lineEdit->setText(software.selectedApp(ui->accessories->currentRow()));
}



apps.list sadrzi (samo za probu jedan red a inace treba oko 20)

avant-window-navigator 0

ali kad kliknem na pushbutton i lineedit-u se ne ispise avant-window-navigator (a treba kao sto vidis u kodu)
primetio sam da u command.sh posle grep ne ispise 0 a trebalo bi pa tek onda apps.li...

MOLIM POMOC
hvala unapred
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2790 Profil

icon Re: QT i QListWidget15.10.2010. u 16:11 - pre 164 meseci
Naredbom

Code:
commander << currentAppNumber;


se u principu ne upisuje sadržaj u datoteku, već u bafer, prilikom čijeg pražnjenja sadržaj zaista ide u datoteku. Ti si izvršio naredbu

Code:
system("sh command.sh");


dok je datoteka command.sh bila prazna, pa zato i nisi dobio rezultat. Treba pre te naredbe da osiguraš pražnje nje bafera, na primer zatvaranjem fajla. Dakle, premesti naredbu za zatvaranje fajla command.sh jedan red iznad, odnosno pre poziva system funkcije.

No, ovo si mogao da rešiš i elegantnije. Prvo, ne treba ti poziv sh da bi pozvao grep, već si njega mogao da zoveš i direktno. Drugo, pokretanje ljuske ti uopšte nije potrebno. Prouči klasu QProcess. To je ono što ti treba.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

[es] :: C/C++ programiranje :: QT i QListWidget

[ Pregleda: 1458 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.