Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Qt] Kilka operacji na jednym QTextEdit

Ostatnio zmodyfikowano 2014-06-01 14:55
Autor Wiadomość
maniek1310
Temat założony przez niniejszego użytkownika
[Qt] Kilka operacji na jednym QTextEdit
» 2014-05-13 19:00:17
Witam, mam pewien problem. A więc tak, mam QTextEdit i w nim będę wklejał linki do stron, każdy link w nowej linijce. I teraz chcę aby po kliknięciu na przycisk uruchamiał tą stronę. Wszystko mam zrobionę, gdy wkleję jeden link to działa prawidłowo. Problem pojawia się jak wkleję więcej niż jeden link. Nie wiem jak zrobić, aby każdy po kolei uruchamiał. Środowisko w którym programuje to Qt 5.2
P-109872
MrPoxipol
» 2014-05-13 19:50:33
Masz stringa w wielu linijkach (kończy się '\n'), więc wczytuj z niego po linijce i otwieraj strony.

C/C++
string input = "https://google.com\n\
  http://cpp0x.pl\n\
  http://warsztat.gd";

string buffor;
istringstream is( input );
while( getline( is, buffor ) ) {
    cout << "Url to open: " << buffor << endl;
}
Url to open: https://google.com
Url to open: http://cpp0x.pl
Url to open: http://warsztat.gd
P-109887
maniek1310
Temat założony przez niniejszego użytkownika
» 2014-05-13 21:12:57
Ok, teraz tylko zamienię to na Qt i powinno działać. Dzięki za pomoc.
P-109898
maniek1310
Temat założony przez niniejszego użytkownika
» 2014-06-01 14:55:30
Zrobiłem tak jak pisałeś ale teraz sprawdza tylko jeden link (ten ostatni).

mainwindow.h
C/C++
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QUrl>
#include <Qstring>
#include <QWebFrame>
#include <QWebView>
#include <QWebElement>
#include <QWebElementCollection>
#include <QDebug>
#include <string>
#include <QTableWidgetItem>
#include <QHeaderView>
#include <sstream>

using namespace std;

namespace Ui {
    class MainWindow;
}

class MainWindow
    : public QMainWindow
{
    Q_OBJECT
   
public:
    explicit MainWindow( QWidget * parent = 0 );
    QWebView * qwv = new QWebView();
    ~MainWindow();
   
private slots:
    void lnk_turbobit();
    void lnk_rapidgator();
    void lnk_catshare();
    void on_pushButton_clicked();
    void finished( bool );
   
private:
    Ui::MainWindow * ui;
    QUrl lnk;
    unsigned int licznik = - 1;
    unsigned int width = 0;
    unsigned int width2 = 0;
};

#endif // MAINWINDOW_H

mainwindow.cpp
C/C++
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "load.h"

MainWindow::MainWindow( QWidget * parent )
    : QMainWindow( parent )
     , ui( new Ui::MainWindow )
{
    ui->setupUi( this );
   
   
}

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

void MainWindow::on_pushButton_clicked()
{
    QString rep_lnk = ui->textEdit->toPlainText();
    string buffor;
    istringstream is( rep_lnk.toStdString() );
   
    unsigned int j = 0;
   
    while( getline( is, buffor ) )
    {
       
        QString rep_lnk2 = buffor.c_str();
       
        rep_lnk2.replace( " ", "" );
        rep_lnk2.replace( "\n", "" );
       
       
        qDebug() << rep_lnk2;
       
        lnk = rep_lnk2;
       
        qwv->setUrl( lnk );
       
        ui->label->setText( "Sprawdzanie linków" );
       
        connect( qwv, SIGNAL( loadFinished( bool ) ), this, SLOT( finished( bool ) ) );
    }
   
    licznik++;
}

void MainWindow::finished( bool )
{
   
    ui->label->setText( "Zakończono sprawdzanie linków" );
   
    QString file;
    unsigned int n;
   
    file = lnk.toString();
   
    n = file.toStdString().find( "turbobit" );
    if( n != string::npos )
         lnk_turbobit();
   
    n = file.toStdString().find( "rapidgator" );
    if( n != string::npos )
         lnk_rapidgator();
   
    n = file.toStdString().find( "catshare" );
    if( n != string::npos )
         lnk_catshare();
   
   
    //lnk_turbobit();
    //lnk_rapidgator();
    //lnk_catshare();
}

...
P-111251
« 1 »
  Strona 1 z 1