Строка селектора, переданная в .next
, отфильтрует следующий элемент, если он не соответствует строке селектора. Но следующий элемент - это li
, а не a
, поэтому .next('li a')
не будет работать.
Вместо этого используйте .next("li").find('a')
:
var linktext1 = jQuery(".selected").next("li").find('a').text();
console.log(linktext1);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li class="abc selected"><a href="www.test.com">test</a> </li>
<li class="abc"><a href="www.test1.com">test1</a> </li>
<li class="abc"><a href="www.test2.com">test2</a> </li>
</ul>
В этой конкретной ситуации, тем не менее, нет необходимости селектор li
для перехода на .next
, потому что .selected
будет li
, поэтому любой из его братьев и сестер также будет li
с:
var linktext1 = jQuery(".selected").next().find('a').text();
console.log(linktext1);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li class="abc selected"><a href="www.test.com">test</a> </li>
<li class="abc"><a href="www.test1.com">test1</a> </li>
<li class="abc"><a href="www.test2.com">test2</a> </li>
</ul>
Я не использую анимацию GIF с QGraphicsView
или QGraphicsScene
, я использую ее только в QDialog
, но я думаю, что это то же самое, поэтому вот мой код:
QMovie *movie = new QMovie(":/images/other/images/16x16/loading.gif");
QLabel *processLabel = new QLabel(this);
processLabel->setMovie(movie);
movie->start();
Мой loading.gif
я взял из эту ссылку.
PS: также посмотрите примеры из Qt SDK. Они действительно могут помочь!
Я поместил это здесь на случай, если кто-то, кроме меня, столкнется с той же проблемой.
Проблема
GIF не загружается и isValid()
возвращает false
.
Код
// Load animated GIF
QMovie* movie = new QMovie("foo.gif");
// Make sure the GIF was loaded correctly
if (!movie->isValid())
{
// Something went wrong :(
}
// Play GIF
QLabel* label = new QLabel(this);
label->setMovie(movie);
movie->start();
Решение
Чтобы решить эту проблему, я должен был поместить GIF-плагин Qt qgif4.dll
в папку с именем imageformats
рядом с моим exe, чтобы иметь возможность использовать GIF.
DLL можно найти в /plugins/imageformats/qgif4.dll
.
http://doc.qt.io/qt-5/qmovie.html
Google и Qt docs - ваши друзья. Там даже есть пример .
PS: если вы не в Китае, то Google недоступен, но у вас есть такие вещи, как Bing и doc.qt.io.com .
PS2: для более подробного ответа: вы можете использовать QGraphicsProxyWidget
из QLabel
, который имеет QMovie
через QLabel::setMovie
. Вероятно, есть более простой / короткий способ сделать это.